我遇到了一個我不明白的問題。我在我的應用程序中使用了一個DLL。這個DLL需要其他的DLL,我擁有所有的DLL。如果我把庫放在我的appliction文件夾中,一切正常。從非應用程序文件夾使用DLL時,會引發外部異常
但是,在應用程序文件夾中有一堆DLL看起來很難看,所以我想將它們移動到application \ lib子文件夾中。
現在,當我嘗試使用它的某些功能時,我得到了外部異常。
我只改變了一行代碼:
原代碼
DLLHandle := LoadLibrary(Pchar(ExtractFilePath(ParamStr(0)) + 'External.dll'))
更改後的代碼
DLLHandle := LoadLibrary(Pchar(ExtractFilePath(ParamStr(0)) + 'lib\External.dll'))
在這兩種情況下DLLHandle
有一個手柄加載庫後。我還沒有得到任何錯誤調用GetProcAddress( DLLHandle, '[email protected]')
沒有例外後,和GetLastError
返回值始終爲0
你有什麼想法可能是錯了嗎?
謝謝。
感謝您的答案,不幸的是將文件夾添加到系統路徑沒有幫助。 – Wodzu
系統路徑可能會使其工作,但它不是一個非常愉快的選項 –
+1的診斷,但請不要亂搞我的系統路徑未經許可,你也可以註冊DLL的窗口,所以它知道在哪裏可以找到它沒有通過路徑。也應該更快。 (這是一個評論,因爲我不記得在哪裏/如何註冊DLL,沒有時間去找它)。 –