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

posted @   高_山_流_水  阅读(921)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示