VC++ OCX 控件注册

转自:

方法一:在DOS或Windows命令行下运转:regsvr32 ocxname.ocx 注册

示例:
regsvr32      //注册控件
regsvr32 /u     离开把持权的表示

设想装备纸张缺席的零碎登记分类中,还需求为装备纸张名添加使筋疲力尽手段和财力。。要不是regsvr32服用,微软运用内车道 web 该场所还装备名为 的顺序,您可以反省记录簿并停止LOS记录簿说话中肯章。。 要不是可以停止 “悬挂” 的章,它还装备了一点钟吊销。 装备纸张帮忙复原不对停止。

用 注册 activeX 尽管如此把持很复杂,无论多少用户需求手工注册。,不运用时也需求人工操作离开。。

方法二:用 install shield,选择内 “self-registered”,装置顺序将自动手枪注册。;

方法三:api 有或起作用注册

这种方法的设计思惟是:先将 activeX 堆积到内存说话中肯控件,以后使生效其有效性,够用直率的在内存地址中表现其注册有或起作用(DllRegisterServer、 DllUnregisterServer)。
它的程序方法是:

1、运用Windows api 有或起作用Loadlibrary 堆积ActiveX控件 控件;
2、运用GetProcAddress 有或起作用获取ActiveX 在把持注册有或起作用DllRegisterServer时(登记功用 DllUnregisterServer)有指导意义的事物;
3、运用CallwindowProc 有或起作用表现堆积到内存说话中肯ActiveX。 控件注册有或起作用(DllRegisterServer、 DllUnregisterServer)。

示例:

typedef int (回调 myfunction)(void);
myfunction  myfunction = null;
hinstance handle = null ;
handle = LoadLibrary(“”);

if( handle != null )
{
myfunction = GetProcAddress(handle, “DllRegisterServer”);
if( myfunction != null )
{
myfunction();
}
}

小小亲身参与:
1、偶然,OCX控件在顺序中运用走慢,反省afxoleinit当中的呼唤表现。设想运用了一群,它也需求记录使安全。 afxEnableControlContainer()
2、运用ActiveX控件 Control Test Container 可以很便宜地量度样式暴露的ocx控件(从开端菜肴-》顺序-》Microsoft Visual Studio -> Microsoft Visual Studio Tools 你可以通知下面所说的事器)
3、偶然候做把持是缺少成绩的。,注册同一得体的的。,无论多少注册工夫走慢了。,设想可能性的话,dll的版本是不对的。,运用Dependencies检查ocx控件信赖dll能否跟现时运用的dll版本划一。

////////////////////////////////////////////////////////////////////////////////////////////////////

转自:

ActiveX 控件是静态连锁库。,它是鉴于com 维修服务运转,并且可以嵌入到遏制主发动机服用顺序中。,ActiveX 控件的先锋是OLE。 控件。鉴于ActiveX 控件与开门平台无干,照着,用程序语风开门的ActiveX 控件不克不及在缺少少许修正的状况下举行修正。,可以用在替代的程序语风中,成了解的事就像运用windows。 同普通把持。如:在VC 开门的ActiveX控件 控件,可服用于VB,摈除修正。 中。由此可见,使用ActiveX控件 控件可以了解禁食和小型的议会重用。、行为准则共享,列举如下养育顺序设计的效能。。

  从Internet 下载ActiveX 控件,或别的方法的ActiveX 控件,用户不得不做的事多少得体的运用它?普通来说,表面ActiveX 控件在windows中 得体的运用,率先,你不得不归档一点钟把持装备纸张。 OCX) 付印到硝酸钠,以后把它放在窗户里 中注册,无法在Windows 注册ActiveX控件控件 控件不克不及运用。注册ActiveX控件 普通来说,有三种方法可以把持。,意见分歧的适用范围,各有各的优点。,下面零件议论。

  一、运用 顺序ActiveX 把持注册

  未注册ActiveX控件 控件可以运用此软件举行注册。,外国的的ActiveX 控件不得不在本人的顺序中注册,不得不注册。。装备纸张状态Windows中。 登记分类零碎 子登记分类下。该方法的运用列举如下:点击开端-运转;在运转对话框中输出以下命令:
regsvr32 < 装备纸张名>  表示一点钟ActiveX 控件
regsvr32 /u< 装备纸张名> 停止一点钟ActiveX 注册控件
敝运用了少量的ActiveX控件。 服用控件时,偶然它不克不及运转。,这可能性是它本人的ActiveX 控件未注册到,此刻,您也好尝试运用下面的命令。。那个,VC 设想用户是得体的的 对行为准则感兴趣的单词,可以在vc中 在联机帮忙中找到它的源行为准则。设想运用vc ++,以后在MSDN 激光唱片的/sample/VC98/MFC/controls/regsvr 中。

  二、运用装置顺序

样式软件:InstallShield

  运用 表示ActiveX控件 尽管如此把持很复杂,但它需求由用户手工表示。,当你不运用它时,你不得不人工操作停止表示。,照着,助动词=have服用顺序来说,这不是一点钟好的receiver 收音机。。玩个痛快服用顺序通常有装置顺序。,在装置顺序中处理ActiveX 控件注册是较比抱负的一种展现。运用InstallShield 专业程度的设置可以发生,ActiveX也可以注册。 控件;并且,未来笨蛋软件时,自动手枪登记先前注册的ActiveX 控件。方法列举如下:
启动InstallShield,运用又 Wizard 修建一点钟新又;
新建一点钟“File Group”,需求注册的ActiveX 把持装备纸张放在下面所说的事装备纸张中。 组中;
取下面的装备纸张 Group”的“Self 已注册的属性设置为是。
外面的使移近仅用于装置 在ActiveX中设置自动手枪注册控件 把持的几个的使移近,助动词=have装置运用 多少使筋疲力尽一点钟使筋疲力尽的设置 缺席的本文范围内, 让读本本人看这些书。。

  三、将登记码添加到服用顺序中

  其次种方法为难之处小顺序。,却更的方法是在顺序中嵌入注册行为准则。,服用顺序自注册的了解。它的程序方法是:

  1、运用Windows API 有或起作用LoadLibrary 堆积ActiveX控件 控件;
2、运用GetProcAddress 有或起作用获取ActiveX 在把持注册有或起作用DllRegisterServer时 (登记有或起作用有指导意义的事物DllUnregisterServer);
3、呼唤注册有或起作用DllRegisterServer时(或登记有或起作用DllUnregisterServer)。

  下面是vc ++ 使安定的RegActivex 以顺序为例,引见以任何方式在顺序中自动手枪注册(登记)ActiveX 控件。RegActivex 干表达是vc。 ++ 的AppWizard 自动手枪发生,在此基础上添加两个菜肴项:注册ActiveX控件 控件”、登记ActiveX 控件”。当选择注册ActiveX控件 控件”菜肴时,(河内游玩)表示的把持权;当选择登记ActiveX 控件”菜肴时,向······猛扑把持 的注册。

  1、用VC ++ 引起一点钟单文档服用顺序regactivex,别的又赞成默认设置。;
2、向服用顺序添加两个菜肴项:注册ActiveX控件 控件”、登记ActiveX 控件”,使移近列举如下:
a、点击VC ++ resoureview左派的的窗口,双点取菜肴 在又idr_mainframe 翻开菜肴校订者程序;
b、在菜肴校订者程序中,添加主菜肴留下印象,在已注册主菜肴下添加两个菜肴项:注册ActiveX控件 控件”、登记ActiveX 控件”;
3、给新建的菜肴项注册ActiveX控件 控件”和登记ActiveX 把持增多响应有或起作用:
b、在资源校订者程序中,双点取菜肴 在中央的idr_mainframe 翻开菜肴校订者程序,单击注册ActiveX控件 控件”, 按Ctrl +W 翻开MFC Class Wizard;
c、双点取音讯 盒子里的命令, 给注册ActiveX控件 把持菜肴项添加响应有或起作用onregisterreg, 单击合适的的校订者使系牢之物。, 给OnRegisterReg() 有或起作用添加以下行为准则:
void CMainFrame::OnRegisterReg()
{
//ActiveX 控件的手段和财力和装备纸张名。
LPCTSTR pszDllName=””;
// 堆积ActiveX控件 控件
HINSTANCE hLib = LoadLibrary(pszDllName);
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
MessageBox(无法堆积DLL 装备纸张!”,
“产生”,MB_OK);
return;
}
// 取得注册有或起作用DllRegisterServer时 地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress
(hLib,_T(“DllRegisterServer”));
// 呼唤注册有或起作用DllRegisterServer时
if(lpDllEntryPoint!null)
{
设想(走慢 *lpDllEntryPoint)()))
{
MessageBox(“呼唤DllRegisterServer 走慢!”,
“产生”,MB_OK);
FreeLibrary(hLib);
return;
};
MessageBox(注册成),”产生”,MB_OK);
}
else
MessageBox(“呼唤DllRegisterServer 走慢!”,
“产生”,MB_OK);
}

  c、登记ActiveX 控件菜肴项响应有或起作用是以同一的方法使安定的。,行为准则也同样的。,合理的将“lpDllEntryPoint=GetProcAddress(hLib,_T(“DllRegisterServer”));”改成:
lpDllEntryPoint = GetProcAddress(hLib,_T
(“DllUnregisterServer”))。
4、波湾阴谋并上外面的顺序,你可以记录一点钟可表现装备纸张。同一要紧的是要睬:不得不做的事是ActiveX 控件装备纸张 付印到Windows 的system 登记分类下。控件装备纸张 微软压印的《视觉》 C ++ 可以找到附在顺序员路标上的激光唱片。。
5、量度前述的顺序:运转形象化 C ++ 在顺便的激光唱片游玩顺序员路标 顺序,设想regactivex运用 注册了 控件,顺序可以主力队员运转。;设想regactivex运用 登记了 把持的游玩 不克不及运转。

发表评论

电子邮件地址不会被公开。 必填项已用*标注