1、开发商提供的dll,我基于这个dll开发了个ocx控件,所以说现在的ocx控件包含一个ocx和一个dll文件。
2、以前我还开发了个控件,也是基于dll的(我晕)。那次dll的调用是用lib调用的,所以包括一个ocx一个dll一个lib还有一个h文件
问题是:我把控件弄成所谓的ActiveX控件,在网站上调用。按钮,然后下载控件,然后自动注册。就可以用了。
我以前弄成cab也不能用,所以一直也是手动注册,感觉相当没劲。另外,在写ocx的时候有个自动注册代码,这个自动注册代码是怎么工作的。这个自动注册是不是web上的自动注册。我也写了自动注册。怎么不行。
look:CMegicCtrl:
Read();
Register();void CMegicCtrl::Register()
{
//ActiveX控件的路径及文件名
LPCTSTR pszDllName="Megic.ocx";
//装载ActiveX控件
HINSTANCE hLib=LoadLibrary(pszDllName);
//获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint=GetProcAddress(hLib,_T("DllRegisterServer"));
//调用注册函数DllRegisterServer
if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
FreeLibrary(hLib);
return;
};
}
2、以前我还开发了个控件,也是基于dll的(我晕)。那次dll的调用是用lib调用的,所以包括一个ocx一个dll一个lib还有一个h文件
问题是:我把控件弄成所谓的ActiveX控件,在网站上调用。按钮,然后下载控件,然后自动注册。就可以用了。
我以前弄成cab也不能用,所以一直也是手动注册,感觉相当没劲。另外,在写ocx的时候有个自动注册代码,这个自动注册代码是怎么工作的。这个自动注册是不是web上的自动注册。我也写了自动注册。怎么不行。
look:CMegicCtrl:
Read();
Register();void CMegicCtrl::Register()
{
//ActiveX控件的路径及文件名
LPCTSTR pszDllName="Megic.ocx";
//装载ActiveX控件
HINSTANCE hLib=LoadLibrary(pszDllName);
//获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint=GetProcAddress(hLib,_T("DllRegisterServer"));
//调用注册函数DllRegisterServer
if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
FreeLibrary(hLib);
return;
};
}
还有,我怀疑你的LPCTSTR pszDllName="Megic.ocx";
路径可能要用绝对路径,有可能没有找到!
其实也可以做一个安装程序打包进cab,也是用 ini 配置下载后怎么安装。具体可以查查 ini 的写法