1

我正在使用 Visual Studio 2008 和 Win7 64 位我想为每个客户端请求(CoCreateInstanceEx)启动一个新进程(out-proc 服务器)。我遵循的步骤是

覆盖 PreMessageLoop。在 PreMessageLoop 函数中,我将我的类对象注册为“REGCLS_SINGLEUSE”。RegisterClassObjects(CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER,REGCLS_SINGLEUSE);

因此,对于每个 CoCreateInstanceEx 调用,都应该启动一个新的服务器进程。但它只为以下代码片段创建了一个 exe。

for(int i=0; i < 5; i++)
    {
// COSERVERINFO and MULTI_QI creation and initialization is done here.
hr = ::CoCreateInstanceEx(__uuidof(MyClass), NULL, CLSCTX_SERVER, &oServerInfo, 1, multi_qi);
_ASSERTE( SUCCEEDED(hr) );
}
4

0 回答 0