100分请教ActivX控件的注册问题? 还需在注册表中加入此控件的License信息! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MSFlxGrid.ocx注册应该没有问题!你可以用程序来注册//注册ActiveX控件static BOOL RegActiveXControl(LPCTSTR pszDllName){ //初始化OLE. if (FAILED(OleInitialize(NULL))) return FALSE; //使系统不显示严重的错误句柄信息框,然而,系统向当前进程发送错误信息,用以保证LoadLib fails. SetErrorMode(SEM_FAILCRITICALERRORS); //装载ActiveX控件LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); HINSTANCE hLib = LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);//LoadLibrary(pszDllName); if (hLib < (HINSTANCE)HINSTANCE_ERROR) { OleUninitialize(); return FALSE; } //获取注册函数DllRegisterServer地址 FARPROC lpDllEntryPoint = GetProcAddress(hLib,_T("DllRegisterServer")); //调用注册函数DllRegisterServer if(lpDllEntryPoint==NULL) return FALSE; if(FAILED((*lpDllEntryPoint)())) { FreeLibrary(hLib); OleUninitialize(); return FALSE; } FreeLibrary(hLib); OleUninitialize(); return TRUE;} prog_st(st),谢谢,受益匪浅! liangs(网络杀手),prog_st(st) ( ) : 谢先,在请: 是否只有一个文件MSFlxGrid.ocx还不够呀? to "prog_st(st)" 用自己编程注册和用regsvr32.exe有什么区别? BOOL CMakeDataApp::RegisterControls(){ char sPath[MAX_PATH]; HINSTANCE hLibrary; PREGISTERSERVER pRegisterServer; HRESULT hResult; //GetCurrentDirectory(MAX_PATH,sPath);///不支持中文目录 sprintf(sPath,"c:\\control.ocx"); hLibrary = LoadLibrary(sPath); if(hLibrary == NULL) { AfxMessageBox("cow,Loading your controls failed!"); return FALSE; } else {/// DllRegisterServer is function name; pRegisterServer = (PREGISTERSERVER)(GetProcAddress(hLibrary,_T("DllRegisterServer"))); if(pRegisterServer == NULL) { AfxMessageBox(_T("cow,your mem address of Moduls failed!")); return FALSE; } else { hResult = pRegisterServer(); if(FAILED(hResult)) { AfxMessageBox("error on HRESULT = 0x%x",hResult); return FALSE; } } FreeLibrary(hLibrary); return TRUE; }}关键函数:DllRegisterServer 忘了,要先定义:typedef HRESULT (STDAPICALLTYPE* PREGISTERSERVER)(void); 谢谢各位,因为程序中就使用了一个非WINDOWS标准控件,我也不打算用代码实现,现场安装注册完事。但现在还没有解决,用MSFlxGrid.ocx文件可能还不够,我想在安装Visual Studio时注册的不止MSFlxGrid.ocx。 但是,有的机上用regsvr32.exe注册MSFlxGrid.ocx,报注册成功,但程序不能使用,我看了WINDOWS的报错,肯定是由于不支持控件的原因,各位有何妙计,请指教!!!! 关于vc6的哪个类库最好用??? 【求救】struct 中string 声明报错 MFC语法错误问题 VC载入工程突然很卡,像挂掉一样。 各位大侠,请大家帮我一个解决一个问题! 关于视频播放截图的问题 不解,关于sizeof一个class得出的结果。 请教高手台球问题:关于台球运动轨迹和角度!! 写了一行字,如何擦掉?100FEN 急!几个关于面向对象的问题——我明天要考试!!! 应用socket编程时如何在SERVER端和CLIENT端进行握手? 如何将UTF-8转换为MBS?
//注册ActiveX控件
static BOOL RegActiveXControl(LPCTSTR pszDllName)
{
//初始化OLE.
if (FAILED(OleInitialize(NULL)))
return FALSE;
//使系统不显示严重的错误句柄信息框,然而,系统向当前进程发送错误信息,用以保证LoadLib fails.
SetErrorMode(SEM_FAILCRITICALERRORS);
//装载ActiveX控件LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
HINSTANCE hLib = LoadLibraryEx(pszDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);//LoadLibrary(pszDllName);
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
OleUninitialize();
return FALSE;
}
//获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint = GetProcAddress(hLib,_T("DllRegisterServer"));
//调用注册函数DllRegisterServer
if(lpDllEntryPoint==NULL)
return FALSE;
if(FAILED((*lpDllEntryPoint)()))
{
FreeLibrary(hLib);
OleUninitialize();
return FALSE;
}
FreeLibrary(hLib);
OleUninitialize();
return TRUE;
}
谢先,在请:
是否只有一个文件MSFlxGrid.ocx还不够呀?
{
char sPath[MAX_PATH];
HINSTANCE hLibrary;
PREGISTERSERVER pRegisterServer;
HRESULT hResult;
//GetCurrentDirectory(MAX_PATH,sPath);///不支持中文目录 sprintf(sPath,"c:\\control.ocx");
hLibrary = LoadLibrary(sPath);
if(hLibrary == NULL)
{
AfxMessageBox("cow,Loading your controls failed!");
return FALSE;
}
else
{/// DllRegisterServer is function name;
pRegisterServer = (PREGISTERSERVER)(GetProcAddress(hLibrary,_T("DllRegisterServer")));
if(pRegisterServer == NULL)
{
AfxMessageBox(_T("cow,your mem address of Moduls failed!"));
return FALSE;
}
else
{
hResult = pRegisterServer();
if(FAILED(hResult))
{
AfxMessageBox("error on HRESULT = 0x%x",hResult);
return FALSE;
}
}
FreeLibrary(hLibrary);
return TRUE;
}}关键函数:DllRegisterServer
typedef HRESULT (STDAPICALLTYPE* PREGISTERSERVER)(void);