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

Visual Studio: Macro for checking configuration type (exe/dll)

本文关键字:dll 的宏 exe 检查 配置 置类型 用于      更新时间:2023-10-16

是否有一个宏我可以用来检查当前的配置类型在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

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

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

如果是DLL项目,则将定义_USRDLL。(参见配置属性PreprocessorPreprocessor定义)。

要小心,因为列表是由向导填充的,如果项目是作为其他东西创建的,然后配置为DLL,则不会自动更新。此外,如果您正在构建要与DLL链接的库,则必须小心。