如何在程序中注册COM组件? 我写了一个进程内COM组件,用REGSVR32.EXE可注册,但我现在想在另一个程序中注册请问用什么函数,CoRegisterClassObject()好象只能注册进程外组件,请问注册进程内组件用什么函数,最好有SAMPLE!谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用LoadLibrary和GetProcAddress获得DllRegisterServer函数,调用就OK 抄了另一个贴子的代码,看上去好像是:borz(COM COM 给我感觉) ( ) 信誉:100 2002-07-23 17:48:00 得分:0 BOOL CBridgeApp::RegisterCOM(CString file,BOOL reg){ CString error,title; title.Format(_T("Load '%s'"),file); HINSTANCE hDll = LoadLibrary(file); if(!hDll) { if(reg) bp4_SysError(GetLastError(),title); return FALSE; } REG_FUNC lpRegFunc; BOOL ok=FALSE; //·Ç³£ÖØÒª HRESULT hr = CoInitialize(NULL); if(!SUCCEEDED(hr)) { if(reg) bp4_SysError(GetLastError(),title); return FALSE; } if(reg) lpRegFunc = (REG_FUNC)GetProcAddress((HMODULE)hDll,"DllRegisterServer"); else lpRegFunc = (REG_FUNC)GetProcAddress((HMODULE)hDll,"DllUnregisterServer"); if(lpRegFunc) hr = (*lpRegFunc)();//-2147352567 ok = lpRegFunc!=NULL && SUCCEEDED(hr); if(!ok) { if(reg) bp4_SysError(GetLastError(),title); } FreeLibrary(hDll); return ok;} 另外:直接在程序中运行regsvr32 -s "需要注册的组件全路径"即可。 双语菜单用VC简单实现 socket编程疑问 new 一个缓冲区得到指针,如何得到这个缓冲区的句柄呢? 简单问题,CArray、CMap、CList等集合类,是不是线程安全的? 八数码问题 关于字体的几个概念 请问!多个客户程序同时向服务器发送连接请求和数据是,服务器端程序是怎么处理多个连接请求和接受数据的?? 在OpenGL程序中如何接受数组输入 网点图像认别出一个唯一的编码 在Win2000中如何读写端口?急!急!急! How can I get a Dialog handle? 高人指点SQL索引问题
borz(COM COM 给我感觉) ( ) 信誉:100 2002-07-23 17:48:00 得分:0
BOOL CBridgeApp::RegisterCOM(CString file,BOOL reg)
{
CString error,title;
title.Format(_T("Load '%s'"),file);
HINSTANCE hDll = LoadLibrary(file);
if(!hDll)
{
if(reg)
bp4_SysError(GetLastError(),title);
return FALSE;
}
REG_FUNC lpRegFunc;
BOOL ok=FALSE;
//·Ç³£ÖØÒª
HRESULT hr = CoInitialize(NULL);
if(!SUCCEEDED(hr))
{
if(reg)
bp4_SysError(GetLastError(),title);
return FALSE;
}
if(reg)
lpRegFunc = (REG_FUNC)GetProcAddress((HMODULE)hDll,"DllRegisterServer");
else
lpRegFunc = (REG_FUNC)GetProcAddress((HMODULE)hDll,"DllUnregisterServer");
if(lpRegFunc)
hr = (*lpRegFunc)();//-2147352567
ok = lpRegFunc!=NULL && SUCCEEDED(hr);
if(!ok)
{
if(reg)
bp4_SysError(GetLastError(),title);
}
FreeLibrary(hDll);
return ok;
}
另外:直接在程序中运行regsvr32 -s "需要注册的组件全路径"即可。