各位COM高手和COM初学者,请你们说说COM的 proxy/stub程序实现时的相关问题,谢谢!!!
各位COM高手和COM初学者,请你们说说COM的 proxy/stub程序实现时的相关问题,谢谢!!!
请大家说说自己的所知,经验,和问题, 非常感谢!!!
编写COM时需要使用proxy/stub程序,请教proxy/stub的产生和使用:
1.
是否选择生成proxy/stub选项后编译成的DLL含有proxy/stub程序?
2.
A. 如果proxy/stub程序(DLL)是独立的,那幺这个COM 只要有接口的定义,然后编译成DLL就行了?
B. 如果proxy/stub程序(DLL)是独立的,那幺具体的COM接口实现的DLL要怎幺实现?是不是要用到_MERGE_PROXYSTUB,这个东西怎幺用?(ATL的向导中有这个选项,MFC中没有它那样怎幺办?)
具体的COM接口实现与那些不要使用proxy/stub程序的COM接口的实现在代码的写法上有什幺不同?(看到一样例代码中有如下写法,是什幺意思?有什幺作用?:
#ifdef _MERGE_PROXYSTUB
if( !PrxDllMain( hInstance, dwReason, lpReserved ) )
return FALSE;
#endif
hInstance;
return _AtlModule.DllMain( dwReason, lpReserved );
)
C. 如果proxy/stub程序(DLL)是独立的,那幺一个COM有两个DLL,这样程序安装时,客户端和服务端是不是都需要这两个文件?
3.
如果proxy/stub程序(DLL)不是独立的,而是的COM接口的具体实现是在一起的,那幺这个COM和那些不要使用proxy/stub程序的COM的编写有什幺不同?
(如果是使用MFC时,它的向导中没有Allow merging of proxy/stub code这个选项,又需要怎幺做?)