我正在为64位运行的应用程序编写加载项,但是我需要使用来自32位库的对象(该库仅在32位中)。有什么办法可以做到这一点?是否有任何可能的方式在64位c#应用程序中使用32位库?
3
A
回答
8
这在.NET中很简单。您只需要一个进程中的所有模块具有相同的位宽。
因此,您只需启动一个32位子进程,将所有32位DLL放在那里,并使用.net的远程功能调用其中的过程。或者像在COM时间中说的那样:使用进程外组件服务器。
当您需要在32位和64位模块之间传递大量数据时,它会变得更加复杂。您可以设置内存共享,但需要比平常更多的工作。
7
这里的规则很简单,但不是你想听到的。所有代码在一个进程中必须具有相同的位数。如果您的主机进程是64位,那么该进程中的所有代码也必须是64位。因此,如果您需要运行32位代码,则必须将32位代码放在单独的进程中并使用某种形式的IPC。
相关问题
- 1. 是否有可能在Windows 7 64位中使用来自32位EXE应用程序的64位COM(DLL)?
- 2. 是否有可能在intel/64位win7上的32位应用程序中使用64位指令
- 3. 在64位应用程序中使用32位库
- 4. 是否可以从32位应用程序访问64位dll?
- 5. 在64位C++程序中使用32位库
- 6. 32位唯一的MacOS应用程序是否可以使用64位框架?
- 7. 如何在64位应用程序中使用win 32位dll
- 8. 当我将64位应用程序安装到32位程序文件(x86)中时,64位应用程序是否将以32位方式工作
- 9. 试图使用64位MFC DLL的C++ 32位应用程序
- 10. 32位/ 64位Windows/Linux应用程序
- 11. 在64位应用程序中加载32位DLL库
- 12. 在Centos中链接64位应用程序与32位库5.6 64位
- 13. 32位C#应用程序如何利用64位DLL
- 14. 在32位和64位应用程序中使用GDi绘图
- 15. 在32位应用程序中使用64位DLL
- 16. 在64位应用程序中使用32位互操作DLL
- 17. 在C#windows应用程序中安装应用程序之前,检查OS是否是32位或64位
- 18. 如何检测Cocoa应用程序是32位还是64位?
- 19. 如何判断应用程序是64位还是32位?
- 20. 检查应用程序是建立在32位还是64位?
- 21. 如何使32位VB6应用程序适应64位Office?
- 22. 在64位机器上编译32位matlab应用程序(C++)
- 23. 在32位gdb工具上调试64位C++应用程序
- 24. 如何从32位C++应用程序启动64位Java应用程序?
- 25. 从32位应用程序启动64位应用程序?
- 26. 是否有可能从32位应用程序读取64位进程的进程内存?
- 27. Xcode:编译与32位库的64位应用程序
- 28. 是否可以在Windows上使用64位应用程序的32位ODBC驱动程序?
- 29. 如何找到Android应用程序是32位或64位
- 30. Outlook 64位使用从32位应用程序的64位兑换
我相信你可以在32位进程中托管32位库,然后使用进程间通信来数据来回编组。简短的回答:这并不容易。 – user7116 2012-01-29 20:17:39
你真的*需要64位模式吗?这很少见。简单的解决方法是将EXE项目的Platform目标设置为x86。 – 2012-01-29 20:57:00
@Hans听起来像瑞克没有控制主机应用程序,因为他正在编写一个加载项 – 2012-01-29 20:57:57