我的应用程序使用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