OCX手动改名及CLSID步骤
1. 将工程中的所有字符串进行替换 SVCBox -》SVCBoxEmulator
2. 替换SVCBox.vcxproj的所有字符串 SVCBox -》SVCBoxEmulator
3. 批量更改工程内所有包含工程名的文件名 (保存成bat文件)
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir /b /s /a-d *RMTPLS_WN7200DRIIIParam1*') do (
set wkdxz=%%~nxa
ren "%%~dpnxa" "!wkdxz:RMTPLS_WN7200DRIIIParam1=RMTPLS_WN7200DRIIIParam3!")
echo OK!
pause
4 要修改类型库、控件属性接口(即主调用接口)、事件接口、及组件的CLSID共四个
例:在IDL中查找GUID整个工程 如 26F08C0A 一般是成对出现重新赋GUID值
( 因为通常只有一个类厂,一般类厂无GUID(默认)) (APP文件中)
const GUID CDECL BASED_CODE _tlid =
{ 0x26F08C0A, 0x7601, 0x48C7, { 0xAE, 0xC7, 0xCA, 0x53, 0x9D, 0xA8, 0x9E, 0x60 } }; //1. 类型库GUID
// Initialize class factory and guid//这里初始化组件的ProID ProID是字符串,并对应CLSID (Ctrl.CPP中)
IMPLEMENT_OLECREATE_EX(CClockCtrl, "CLOCK.ClockCtrl.1",
0x53b5905a, 0xc9e1, 0x4af3, 0xb2, 0x28, 0x1f, 0xe6, 0x6f, 0x44, 0x17, 0xf2)//给类厂中的静态变量static const GUID guid;赋成COM组件的GUID并初始化组件的ProID
// Interface IDs //2. 接口GUID
const IID BASED_CODE IID_DClock =
{ 0xF77F4F53, 0x7E88, 0x4B68, { 0xA2, 0x86, 0x50, 0xA9, 0xCB, 0xE1, 0x36, 0x57 } };
const IID BASED_CODE IID_DClockEvents =
{ 0x6E41BF95, 0x5C0F, 0x4E8B, { 0x9B, 0x97, 0xA8, 0xE1, 0x9, 0xF9, 0x48, 0xE8 } };
5. propage.CPP中修改属性岩浆的GUID
IMPLEMENT_OLECREATE_EX(CClockPropPage, "CLOCK.ClockPropPage.1",……(必须改) ->改GUID

浙公网安备 33010602011771号