Visual Studio:用于检查配置类型(exe / dll)的宏

时间:2011-10-08 15:38:59

标签: c++ visual-studio macros

我可以用一个宏来检查visual studio中的当前配置类型吗? 根据当前设置,我想要包含main或dllmain函数:

#IFDEF CONFIGURATION_TYPE_EXE

     int main(int argc, char **argv)
     {
       ...
     }
#ELSEIF CONFIGURATION_TYPE_DLL


    BOOL APIENTRY DllMain( HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
    {
        return TRUE;
    }

#ENDIF

2 个答案:

答案 0 :(得分:11)

如果它是dll,那么_WINDLL将被定义为继承值。您可以在此处找到它:配置属性 - > C / C ++ - >预处理器 - >预处理器定义。

#ifdef _WINDLL
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{ ... }
#else
int main(int argc, char** argv)
{ ... }
#endif

答案 1 :(得分:8)

如果是DLL项目,将定义_USRDLL。 (请参阅配置属性\预处理器\预处理器定义)。

但请注意,因为列表由向导填充,如果项目是作为其他项创建的,则不会自动更新,然后将其配置为DLL。此外,如果要构建要与DLL链接的lib,则必须小心。