我几乎可以肯定这是不可能的,但值得一提......
我们有一个从我们的VB6应用程序调用的.NET DLL。 VB6应用程序以32位进程运行,因此DLL在同一进程中运行(它被编译为任何cpu) 因此,当我在DLL中执行ODBC数据库访问时,将仅使用32位驱动程序,因为这是它认为需要的(对于记录,数据库是Pervasive PSQL)
当应用程序在64位计算机上运行时(仅安装了64位ODBC驱动程序),我的问题就出现了,因为找不到合适的驱动程序。
有没有办法强制.NET DLL在64位进程中运行(编译为x64不起作用,因为不允许注册COM Interop)
此时此问题不一定是因为我可以安装32位驱动程序,但是在未来的某个时刻我可以想象32位驱动程序可能无法使用所以我将成为众所周知的小溪
答案 0 :(得分:2)
否则任何32位进程都无法像64位进程那样运行。我能想到的最好的方法是使用2个进程。
使用许多不同的选项可以在32位和64位进程之间进行通信:这里可以想到WCF。