在DLL中编写CWnd的子类,在其他DLL或EXE调用时出现问题,在不重载Create时,运行中被ASSERT掉;重载Create后编译时表示无法找到Create的函数地址。求详解!我想知道是不是工程设置有问题 ,因为链接错误是LNK2001,而且只有Create一个函数有问题,在new出该类的位置并不提示构造函数有链接错误。
3 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
创建含有基于MFC扩展的类的DLL,需要使用 Mfc Extension Dll 动态库
看看你创建DLL工程时候的设置
集中MFCDLL的差别一个是宏定义,一个是入口函数。主要目的是为了保证资源句柄的正确切换,和LIB的链接。
修改配置来的麻烦,你重新构建一个DLL工程,然后把先前的文件都加进去即可
人到中年有点甜
TA贡献1895条经验 获得超7个赞
你在Create函数未重载的时候调用参数都给了什么?我怀疑你的窗口没有被建立起来,比如说RegisterClass, WndParent,Instance给错了或者为空,就会导致create失败从而在进一步操作的时候(比如说showwindow())引发Assert。
- 3 回答
- 0 关注
- 762 浏览
添加回答
举报
0/150
提交
取消