亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

初學DLL,求大神指點 ,為什么MFC調用DLL沒報錯,但是也沒有調用DLL中的函數?

初學DLL,求大神指點 ,為什么MFC調用DLL沒報錯,但是也沒有調用DLL中的函數?

C++
繁花不似錦 2023-04-22 17:13:15
代碼在下面,麻煩諸位大神指教:DLL代碼:.cpp:extern "C" __declspec(dllexport) void open(){AfxMessageBox(_T("錄入出錯!"));CCombineFile dlg;dlg.DoModal();}.h:extern "C" __declspec(dllexport) void open();編譯通過后,將.dll復制到MFC的Debug,.lib、.h復制到MFC目錄下,.h中的dllexport也改成了dllimportMFC代碼:.cpp:#include "Combine.h"#pragma comment(lib,"dlltest.lib") extern "C" __declspec(dllimport) void open();void CTextDlg::OnOK() {// TODO: Add extra validation hereHINSTANCE hDll; //DLL句柄  hDll = LoadLibrary("Combine.dll");  if (NULL==hDll)  {  MessageBox("DLL加載失敗");  }  FARPROC popen = GetProcAddress(hDll,"open");  if (NULL==popen)  {  MessageBox("DLL中函數尋找失敗");  }  open();}
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

帶有對話框資源的MFC擴展DLL,不能簡單的使用LoadLibrary這種形式調用,因為這樣不能加載獲得DLL中的資源,而對話框是需要資源支持的(而不是簡單的一個函數),這樣肯定失敗。
MFC擴展DLL,帶有資源的要使用AfxLoadLibrary / AfxFreeLibrary 來調用。

查看完整回答
反對 回復 2023-04-26
  • 1 回答
  • 0 關注
  • 244 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號