我的應用程序使用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. 如何從資源中提取圖像?
- 3. 如何從BPL內提取資源?
- 4. 如何創建資源DLL
- 5. 從編譯源提取資源
- 6. 如何從dll文件中提取源代碼?
- 7. 如何將exe文件導入資源從資源中提取exe然後shell
- 8. 從SFS文件中提取資源
- 9. C#從本地PE中提取資源
- 10. 加載從資源DLL
- 11. 如何從dll文件獲取字符串資源?
- 12. 如何從dll讀取資源文件c#
- 13. 我如何從.dll文件獲取資源(圖片)?
- 14. 如何從提取默認資源字典中排除對象?
- 15. 如何使用node.js從HTTP資源中提取ZIP文件
- 16. 如何從jar資源中提取目錄(和子目錄)?
- 17. 如何從MSIL或.NET PE文件中提取資源內容
- 18. 如何從.msi文件中提取資源
- 19. 如何從類庫中獲取資源
- 20. 如何從restangular資源中讀取URL?
- 21. 如何從資源中獲取文件
- 22. 如何從資源中獲取視圖?
- 23. CEGUI - 從DLL中加載資源
- 24. 如何確保資源被提取?
- 25. 如何從GAC中提取dll並查看dll中的代碼?
- 26. 無法從JSoup提取資源
- 27. 資源異常DLL中
- 28. 中性資源的DLL
- 29. 從C++中提取DLL
- 30. Silverlight WP7資源DLL
爲什麼嵌入bass.dll? – 2010-08-11 07:29:07
@Jeroen Pluimers,我不想安裝等。這個想法是讓它瞬間,沒有安裝需要測試音頻。 – XBasic3000 2010-08-12 00:53:07
所以你基本上希望你的應用程序是自己的設置。安裝程序非常複雜的原因很多(例如:即使您是管理員,也無法在特定位置進行書寫)。爲陡峭的學習曲線做好準備...... – 2010-08-12 06:08:40