Re: [問題] dll檔集中放在同一個資料夾呼叫問題

看板C_and_CPP (C/C++)作者 (有趣生活)時間16年前 (2009/07/12 17:52), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
※ 引述《maplefog (楓霧)》之銘言: : 感謝回應,讓我後來有成功讀到了 : 以下是完整作法: : 我程式是用BCB寫的,一開始讀執行檔的絕對路徑 : AnsiString exepath = ExtractFilePath(Application->ExeName); : 然後接著就是希望把全部dll檔放到一個名叫dll的資料夾裡 : AnsiString dllpath = exepath+"dll/fault.dll"; : AnsiString folderpath = exepath+"dll/"; : SetCurrentDirectory(pathfolder.c_str()); //把目錄設到這個資料夾 : int (*fault)(void); : HINSTANCE hInst=LoadLibrary(dllpath.c_str()); : (FARPROC &)fault=GetProcAddress(hInst,"fault"); : check = fault(); : FreeLibrary(hInst); : 重點是設定目錄,這樣就可以呼叫到其他的dll檔了 補充一下,其實 MSDN 有建議另一個作法 LoadLibrary ( http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx ) "The search path can be altered using the SetDllDirectory function. This solution is recommended instead of using SetCurrentDirectory or hard-coding the full path to the DLL." 可以用 SetDllDirectory API http://msdn.microsoft.com/en-us/library/ms686203(VS.85).aspx -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.2.150
文章代碼(AID): #1AMR9bU9 (C_and_CPP)
文章代碼(AID): #1AMR9bU9 (C_and_CPP)