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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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 让容器管理更轻松!