我有一个运行在64位机器上的64位进程外COM服务器。我使用regsvr32.exe在我的C:\Windows\System32文件夹中注册了64位代理/存根DLL,并且可以运行64位客户端。我还在C:\Windows\SysWOW64文件夹中注册了32位代理/存根,我可以运行32位客户端。我可以同时运行多个32位客户端和多个64位客户端。然而,如果我尝试先运行32位客户端,然后再运行64位客户端,第二个客户端会尝试创建一个新的Server.exe进程(如果我从64位客户端开始也是一样)。难道它们不应该只使用同一个Server实例吗?
这是我的Server CoCreateInstanceEx调用:
我的客户端
这是我的Server CoCreateInstanceEx调用:
HRESULT hr = CoCreateInstanceEx(CLSID_COMServerObject, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_ACTIVATE_64_BIT_SERVER, NULL, 1, &qi);
我的客户端
CoCreateInstanceEx
调用都长这样:hr = CoCreateInstanceEx(clsid, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_ACTIVATE_64_BIT_SERVER, NULL, 1, &qi);
非常感谢任何帮助。