使用 Visual c++ 6.0,我创建了一个基于 ATL 的 .EXE 服务器。(VC6 因为我正在处理遗留代码,.exe 服务器因为我需要在进程外上下文中测试操作,目前 .exe 服务器本质上是无操作的)
我已经构建并注册了相应的代理存根 DLL。
我有一个客户端应用程序
- IUnknown 的 CoCreateInstance 在服务器对象中调用 FinalConstruct 并成功(因此服务器被正确调用)
- 返回的IUnknown接口的OleRun成功
- 我的服务器对象的 IUnknown 指针上的 QueryInterface 失败,IMarshall 接口的错误代码为 0x8000402(不支持此类接口)
这些步骤是从 (comip.h::CreateInstance) 复制的
问题似乎是没有调用proxystub dll(它没有出现在IDE的模块列表中,也没有出现在调试窗口的加载模块列表中)
我的班级和界面的 OleCom 对象查看器可以在这里看到https://skydrive.live.com/redir?resid=AE43106917EBD9E1!191&authkey=!AIOWeS5P3o2mlpw
8891..ca4d 是我的对象的类接口 ID
A298...420c 是我的服务器对象的接口 ID(基于 IDispatch)
TIA 提供任何帮助