自己的觉悟,不知道对错,认为是对的。
关于MFC扩展DLL导出类问题,以导出类CSTU为例,首先是在导出类头文件的class 后加上AFX_EXT_CLASS声明即可,编译生成CSTU.lib,CSTUdll文件,使用时将CSTU.dll拷贝至调用工程test.exe所在目录下,同时将导出类的CSTU.h头文件放到指定的地方,在调用程序,程序中使用导出类的文件中使用时:
#include "CSTU.h"
#pragma comment(lib,"CSTU.lib")//我是和CSTU.lib放一起,没问题
你的包含路径可能不是这样子,但无论如何请确保能找到CSTU.h和CSTU.lib
细节问题:
1.如果你的CSTU类包含了其它的类,则你的CSTU的头文件中必然会包含其它类的头文件,这种情况下,只能把所有用到的其它类的头文件和CSTU.h一起放到指定的目录下,这样编译时才不会报错找不到"xxx.h"
2.DLL工程会生成debug和release,调用工程 也会生成debug和release,如何调试DLL和调用工程呢,
a.调试DLL的debug时,点击调试运行必然生出现一个框框让你选择调用的应用程序,这时你浏览找到调用工程的debug中的test.exe点击运行,即可调试。用release中的test.exe应该也行,可以试一下
b.调试调用程序中的debug时,注意了,请将DLL工程中的release的CSTU.dll,CSTU.lib拷贝到调用工程的debug下来使用,而不是用DLL工程中的debug的,否则会出现使用release能成功,debug却报错的问题,而且是"CDialog::Create(ATL_MAKEINTRESOURCE(nIDTemplate), pParentWnd);"中的ATL_MAKEINTRESOURCE(nIDTemplate)产生的是一个无用指针的问题
3.要有耐心啊

3479

被折叠的 条评论
为什么被折叠?



