是否有可能将一个本地(C++)DLL作为可执行文件加载? 优先直接从内存中创建硬盘驱动器或类似的EXE?作为一个exe启动一个DLL
回答
查找rundll32.exe
。但是你最好确切知道你在做什么。老实说,我不确定。
您可以使用LoadLibrary
WinAPI调用来加载DLL。
具体来说,这是什么意思?例如,它将在DLL中使用什么入口点?
这实际上工作的唯一方法是如果DLL是专门编写的允许它。如果是这种情况,那么它不完全清楚为什么你不会首先创建一个可执行文件而不是DLL。
典型情况是RunDLL32.exe存根。它旨在执行DLL with a specific signature作为入口点的功能。如果DLL没有专门设计符合这个签名,那么things don't go well。如果您需要需要这样的功能,您可能需要考虑匹配RunDLL32.exe所需的函数签名并使用它来“执行”您的DLL。
我正在写这个DLL,所以它会被写入以允许它。我需要处理x64和x86平台,但我不想提供2个版本(我在做什么 - 在我的问题的评论中解释):) – Idov 2012-01-27 21:01:38
@Idov:标准模式是提供2个版本。如果它是一个调试器,它是为开发人员编写的。我认为他们可以理解x86和x64平台之间的差异,并成功地处理两种不同的可执行文件。你正在使这种方式比它所需要的更复杂。 – 2012-01-27 21:04:37
Microsoft提供的Rundll32.exe
可用于执行已明确编码以支持此用法的DLL函数。
- 1. jekyll作为一个.exe运行,它也启动rails服务器?
- 2. Flex 3 - 启动一个.exe文件
- 3. 从一个PowerShell模块内部启动一个EXE
- 4. 我可以签署一个启动另一个的.exe吗?
- 5. 部署一个.exe和相关的.dll
- 6. 启动Eclipse作为一个调试器
- 7. 我需要从一个64位exe访问一个32位DLL
- 8. getprocaddress不同于一个DLL和一个EXE
- 9. 使用一个EXE文件创建一个项目,并保留为DLL文件
- 10. 制作一个VC++ .exe到DLL。它可能吗?
- 11. 使用T4模板作为一个dll
- 12. 如何从另一个程序集启动WPF前端作为DLL?
- 13. 在delphi中启动一个dll的多个进程
- 14. 从另一个DLL调用一个DLL
- 15. 在另一个DLL中动态加载一个DLL
- 16. 编译一个C++库作为一个静态库和动态DLL与VS
- 17. 是否可以启动一个活动作为一个新进程
- 18. 你可以用一个小的.EXE加载程序打包一个WPF应用程序作为DLL
- 19. 为Labview创建一个DLL
- 20. 如何为一个dll
- 21. 如何将dll合并为一个dll
- 22. 如何使另一个活动作为主要活动(启动)
- 23. NoSQL(在Windows上)没有启动一个单独的EXE?
- 24. 从窗口服务启动一个EXE程序
- 25. 单击按钮 - >启动一个* .exe文件
- 26. 如何在Windows启动使一个exe开始
- 27. 从Windows服务启动一个EXE应用程序
- 28. 开始在蝙蝠一个exe程序不启动新的CMD
- 29. 从当前文件夹启动一个.exe有时会失败
- 30. Java:复制一个exe文件并在之后启动失败
你为什么要这么做 – rerun 2012-01-27 20:54:45
你想在这里做什么? – ChrisF 2012-01-27 20:55:22
我正在用C++编写调试器,它只能调试它自己的类型。 x64只能调试x64和x86 - 只能x86。我不是每个平台都提供2个独立的exe文件,而是考虑检查调试对象需要哪个版本,然后“创建”它的处理exe文件。 – Idov 2012-01-27 20:58:17