首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

同一份源码中通过_USERDLL宏定义来区分是编译成DLL还是应用程序,VS2008如何设置编译器来调试

2013-06-26 
同一份源码中通过_USERDLL宏定义来区分是编译成DLL还是应用程序,VS2008怎么设置编译器来调试?本帖最后由 V

同一份源码中通过_USERDLL宏定义来区分是编译成DLL还是应用程序,VS2008怎么设置编译器来调试?
本帖最后由 VisualEleven 于 2013-05-30 10:04:06 编辑 有一个VS2008解决方案里添加了两个项目。一个项目是DLL的测试程序项目(WIN32控制台项目),一个是DLL的源码项目(标准DLL),两个项目中添加的是同一个CPP文件(使用同一份源码文件),源码文件里是通过_USERDLL宏来控制程序入口时采用main(int argc, char **argv)还是采用BOOL APIENTRY DllMain(HINSTANCE hinstDll,DWORD fdwReason,LPVOID lpvReserved)
的:

#ifdef _USRDLL
BOOL APIENTRY DllMain(HINSTANCE hinstDll,DWORD fdwReason,LPVOID lpvReserved)

    .....................

#else
int main(int argc, char **argv)
{
    .....................
}
#endif

然后在DLL的测试程序项目属性中是预处理器定义选项中没有添加_USERDLL宏,
在DLL的源码项目性中是预处理器定义选项中添加_USERDLL宏,
这样在编译时,解决方案中的DLL的测试程序项目会产生一个exe的Dll测试可执行程序,DLL的源码项目会产生一个标准DLL文件,但是我现在想在Dll测试程序中下断点调试,不管是断点下载main函数中还是下载DLL的导出函数中,断点就是不中断,不起作用,有没有熟悉这种形式编写DLL及其对应的测试程序的工程的,怎么在同一份源码中通过宏开关来切换生成DLL和使用测试程序来直接调试DLL中的函数执行情况? 同一份源码兼容DLL及其对应的测试程序
[解决办法]
最好是单独拿出来,dll和测试工程分开,放在同一个Solution下即可。
[解决办法]
属性配置->C/C++->预处理器定义 这里可以定义宏
断点不起作用,dll,exe,还有dll的pdb文件放在同一个输出目录下试试

热点排行