[問題] MFC 載入DLL

看板C_and_CPP (C/C++)作者 (台灣自耕農代表)時間14年前 (2012/04/01 22:35), 編輯推噓5(507)
留言12則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 6.0 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 自行撰寫的DLL 問題(Question): 載入DLL失敗, 關鍵原始碼相當簡單: handle = ::AfxLoadLibrary("xxx.dll"); if(handle) { return TRUE; } else { AfxMessageBox( CString("Load Dll fail !") ); return FALSE; } 目前是由測試方(release版)跳出的訊息判斷出在這附近掛的, 但是在自己的電腦上怎麼測都不會Load失敗。 以我所知,只要在Linker裡面設定好路徑, AfxLoadLibrary()函式應該不會失敗; 不過由於這部分Code並非出自我手, 想請問關於正確載入DLL, 是否還有什麼細節是我不知道的? 或者說還有什麼其他因素可能導致AfxLoadLibrary()回傳0 ? 謝謝大德! 預期的正確結果(Expected Output): return TRUE; 錯誤結果(Wrong Output): handle 為 0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.13.232

04/01 23:22, , 1F
AfxLoadLibrary fails 可以查到很多東西
04/01 23:22, 1F

04/01 23:26, , 2F
文中強調測試方是release版 那自己的電腦也是用release測
04/01 23:26, 2F

04/01 23:27, , 3F
嗎?
04/01 23:27, 3F

04/01 23:44, , 4F
猜測是要被載入的別隻DLL, 本身又需要另外別隻DLL
04/01 23:44, 4F

04/01 23:44, , 5F
環境沒搞定好吧... 大概是runtime library不完整
04/01 23:44, 5F

04/01 23:54, , 6F
根據樓上的猜測 我就想到之前有遇過的狀況是
04/01 23:54, 6F

04/01 23:55, , 7F
需要裝Microsoft Visual C++ 2008 Redistributable更新
04/01 23:55, 7F

04/01 23:56, , 8F
程式的開發環境是VS2008
04/01 23:56, 8F

04/01 23:56, , 9F
應該是環境問題,之前遇過2005~2010發散套件都裝
04/01 23:56, 9F

04/01 23:56, , 10F
還是都不能,重新compiler就ok了
04/01 23:56, 10F

04/02 00:34, , 11F
問題是,只有載入這個dll失敗,改成其他dll就能成功嗎
04/02 00:34, 11F

04/02 13:38, , 12F
build的時候是用static link to MFC嗎?
04/02 13:38, 12F
文章代碼(AID): #1FU6Uud7 (C_and_CPP)
文章代碼(AID): #1FU6Uud7 (C_and_CPP)