读书人

在VC环境上怎么不用ATL向导开发进

发布时间: 2012-09-18 16:21:42 作者: rapoo

在VC环境下,如何不用ATL向导,开发进程外COM服务器EXE程序
RT



[解决办法]
com是规范, 用win32都能开发, atl只是一个辅助库而已
[解决办法]
COM技术内幕
[解决办法]
基本上和进程内服务器没有多大区别,主要是组件对象的注册问题,

在进程内服务器中,我们通过导出DllRegisterServer/DllUnregisterServer来注册我们的组件,注册时是靠regsvr32.exe 来调用这两个函数来完成注册拆卸。

在进程外服务器中,注册是靠命令参数来完成,YourServerApp.exe /regserver 时 完成我们的注册,其实在内部都是一样的,大致的程序结构如下:

int _stdcall WinMain(...)
{
//处理命令行
如果是regserver 注册,然后退出
如果是unregserver 拆卸,然后退出

CoRegisterClassObjects()//注册类对象

// 消息循环
while(GetMessage(&msg,NULL,0,0) > 0)
{
//...
}

CoRevokeClassObjects()

}


什么时候消息循环结束呢?当客户完全释放组件时,服务器有WM_QUIT消息raise,最后进程退出。

读书人网 >VC/MFC

热点推荐