Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将.NET COM对象迁移到64位 我们有C++应用程序,使用多个COM对象。COM对象基于.NET(使用COM互操作)_.net_C++_Com Interop_32bit 64bit - Fatal编程技术网

将.NET COM对象迁移到64位 我们有C++应用程序,使用多个COM对象。COM对象基于.NET(使用COM互操作)

将.NET COM对象迁移到64位 我们有C++应用程序,使用多个COM对象。COM对象基于.NET(使用COM互操作),.net,c++,com-interop,32bit-64bit,.net,C++,Com Interop,32bit 64bit,我需要将应用程序迁移到64位。我特别需要C++应用程序64位。我不想将所有.NET com对象重新编译为64位,并提供两组DLL(32位和64位) 我正在调查,发现我可以使用(注册表中的DllSurrogate)在32位代理进程中加载32位COM Dll。我知道怎么做,但这意味着所有COM对象都将退出进程 在C++中我有代码: CoCreateInstance(CLSID_SomeClass,NULL,CLSCTX_INPROC_服务器,IID_SomeInterface,(void**)和po

我需要将应用程序迁移到64位。我特别需要C++应用程序64位。我不想将所有.NET com对象重新编译为64位,并提供两组DLL(32位和64位)

我正在调查,发现我可以使用(注册表中的DllSurrogate)在32位代理进程中加载32位COM Dll。我知道怎么做,但这意味着所有COM对象都将退出进程

<>在C++中我有代码: CoCreateInstance(CLSID_SomeClass,NULL,CLSCTX_INPROC_服务器,IID_SomeInterface,(void**)和pobj)

它工作正常,但只要我切换到CLSCTX_LOCAL_服务器(并为DllSurrogate添加注册表项),它就找不到接口(错误0x80004002)。我检查了注册表,发现在注册.NETCOMDLL时,它添加了ClsID注册表项,但没有添加Interface和TypeLib注册表项

问题是,如何为.NET COM创建这些注册表项

问候,,
Victor

如果您想要进程中的所有内容,那么应用程序和COM对象都必须是64位的。请参阅。

如果希望所有内容都在进程中,则应用程序和COM对象必须为64位。请参阅。

您尝试仅支持x64位操作的具体原因是什么?您尝试仅支持x64位操作的具体原因是什么?