在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 關注
- 788 瀏覽
添加回答
舉報
0/150
提交
取消