Ped*_*dro 9 c++ macros visual-studio
我可以用一个宏来检查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
Run Code Online (Sandbox Code Playgroud)
qik*_*qik 12
如果它是dll,那么_WINDLL将被定义为继承值.您可以在此处找到它:配置属性 - > C/C++ - >预处理器 - >预处理器定义.
#ifdef _WINDLL
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{ ... }
#else
int main(int argc, char** argv)
{ ... }
#endif
Run Code Online (Sandbox Code Playgroud)
如果它是一个DLL项目,_USRDLL将定义.(请参阅配置属性\预处理器\预处理器定义).
但请注意,因为列表由向导填充,如果项目是作为其他项目创建的,则不会自动更新,然后将其配置为DLL.此外,如果要构建要与DLL链接的lib,则必须小心.