我的應用程序使用Bass.dll,並將其添加到資源中。我希望在應用程序啓動之前將其解壓縮。如何使其無效?如何從資源中提取dll
回答
XBasic3000,我覺得你的問題是至極也許你正在使用外部聲明這樣
function Foo: integer; stdcall; external 'bass.dll';
所以操作系統不能解決DLL中的函數的地址。
相反,您必須在提取DLL後使用LoadLibrary()和GetProcAddress()函數,這樣可以通過檢查DLL的存在來避免崩潰。
如果使用D2010中引入的新'延遲'功能,它會爲您處理LoadLibrary()和GetProcAddress()。 – 2010-08-11 05:57:41
我試過了,但一些函數不能獨立工作Bass_Init。當前路徑上的 – XBasic3000 2010-08-12 00:55:41
如果提取DLL,你把它放在哪裏?您的應用程序不是安裝應用程序(setup.exe),它具有特殊的專用權限,因此無法在Vista/Windows7下寫入\ windows \ system32甚至\ program files \ yourapp。嘗試將其放入程序目錄將導致它位於其他位置,通過VirtualStore。所以你必須在嘗試LoadLibrary()之前驗證FileExists('bass.dll')。
。我不想安裝等。這個想法是讓它瞬間,沒有安裝需要測試音頻。 – XBasic3000 2010-08-12 00:54:22
如果「當前路徑」位於Vista或Windows7上的\ program files(或64位系統上的x86路徑)中的任何位置,該文件實際上不會在那裏。 – 2010-08-12 02:40:32
我認爲你的問題的解決方案由RPUZ或Chris Thornton(均爲最新投票)來描述。如果將文件解壓縮到硬盤會導致麻煩,則應該知道可以直接從內存加載DLL。
Zarko Gajic在delphi.about.com解釋。
+1,因爲這實際上是他想要完成的。 – 2010-08-12 15:40:54
- 1. 從資源獲取dll
- 2. 如何從BPL內提取資源?
- 3. 如何創建資源DLL
- 4. 從編譯源提取資源
- 5. C#從本地PE中提取資源
- 6. 如何從dll文件中提取源代碼?
- 7. 我如何從.dll文件獲取資源(圖片)?
- 8. 如何從dll文件獲取字符串資源?
- 9. 如何從dll讀取資源文件c#
- 10. 如何從提取默認資源字典中排除對象?
- 11. 如何從資源中獲取視圖?
- 12. 如何從資源中獲取文件
- 13. 如何從GAC中提取dll並查看dll中的代碼?
- 14. 無法從JSoup提取資源
- 15. 從單獨的DLL庫中的ASP.NET App_GlobalResources獲取資源
- 16. 如何從Azure資源GUID獲取資源名稱?
- 17. 如何從資源
- 18. 使用反射從資源提取的.exe和.dll文件無效?
- 19. 如何從JarPackageFragmentRoot獲取資源?
- 20. 如何從POM獲取資源值
- 21. 如何從ComponentResourceKey獲取實際資源?
- 22. 如何從嵌套資源獲取ids?
- 23. C#從DLL(ResourceManager)加載資源
- 24. 將資源從win32 dll嵌入到.net
- 25. 如何從TomEE 7中的資源獲取數據源?
- 26. 在InternetExplorerDriver中提取資源條目
- 27. 如何從EXE加載資源而不是DLL
- 28. 從nl.siegmann.epublib獲取資源的位圖資源加載資源
- 29. 如何在Android Studio中從數組中提取字符串資源?
- 30. 當資源不在字典中時如何從外觀流中提取內容?
爲什麼嵌入bass.dll? – 2010-08-11 07:29:07
@Jeroen Pluimers,我不想安裝等。這個想法是讓它瞬間,沒有安裝需要測試音頻。 – XBasic3000 2010-08-12 00:53:07
所以你基本上希望你的應用程序是自己的設置。安裝程序非常複雜的原因很多(例如:即使您是管理員,也無法在特定位置進行書寫)。爲陡峭的學習曲線做好準備...... – 2010-08-12 06:08:40