COM组件注册方法(VC++)

来源:互联网 发布:linux中ll命令 编辑:程序博客网 时间:2024/05/16 16:55

1、打开VC的属性界面进行设置


2、注册DLL到系统

CString szInfo, szPath;char cPath[MAX_PATH] = {0};GetModuleFileNameA(NULL, cPath, MAX_PATH);szPath += cPath;int nFind = szPath.ReverseFind('\\');if (nFind > -1){szPath.Delete(nFind+1, szPath.GetLength() - (nFind+1));}szPath += "\\ZCB.dll";szInfo.Format("regsvr32  \"%s\" ", szPath);//执行注册WinExec(szInfo.GetBuffer(MAX_PATH), SW_SHOW);

3、初始化COM组件

if(!AfxOleInit())   {   AfxMessageBox("无法初始化COM的动态连接库");   return FALSE;   }
或者
if(CoInitialize(NULL) != NULL){AfxMessageBox("初始化COM失败!");}


4、创建组件实例

有两个接口可用

BOOL CreateDispatch(REFCLSID clsid, COleException* pError = NULL);BOOL CreateDispatch(LPCTSTR lpszProgID, COleException* pError = NULL);

第一个接口传入CLSID

CLSID clsid;HRESULT hr=CLSIDFromProgID(OLESTR("REGCOM.Register.1"),&clsid);//利用“根名称.类名”获取CLSID,&就是把指针给函数,也就是传址。m_oZCB.CreateDispatch(clsid,NULL);//从注册表中获取到dll路径,到这里就调用成功了。

第二个直接传入ProgID

        m_oZCB.CreateDispatch("REGCOM.Register.1",NULL);


5、使用组件了可以

1 0
原创粉丝点击