TCS*_*TCS 2 c# c++ 64-bit 32bit-64bit
我有一个64位C++进程加载AnyCPU C#DLL.这个AnyCPU C#DLL可以加载32位C++ DLL,还是只能加载64位DLL?
谢谢!:-)
AnyCPU DLL在调用进程的上下文中运行,根据您的问题,它是x64.如果此AnyCPU DLL加载另一个DLL,它也会在加载AnyCPU DLL的x64调用进程的上下文中运行.这是跨不同平台运行代码的问题.如果你想通过调用AnyCPU DLL的x64process运行32位DLL,那么你需要创建一个名为SURROGATE进程的东西 - 这基本上是一个可以运行和加载32位DLL的x86(32位)进程您想要从调用x64进程访问.一旦你运行这个x86进程,这个x64进程就可以使用进程间通信与x86进程(已加载x86 DLL)进行通信,并且可以实现从x64进程间接调用x86 DLL函数.