如何让com组件能注册到中文目录下

本文解决了一个关于COM组件(包括STA和MTA类型)在中文路径下无法正常注册的问题。通过修改VC/ATL中StatReg.h文件内的CParseBuffer类的AddString函数,将lpszT++替换为lpszT = CharNext(lpszT),使得组件可以在中文目录下成功注册。

我做的com组件(STA和MTA的都有),ActiveX都不能注册到中文目录下,在英文目录下没有任何问题,可以很正常的使用,但是如果注册到中文目录下就说找不到组件,使用Oleview查看时发现注册路径是乱码,Oleview也说找不到组件   
 

原因是 Release   MiniDependency版本的中文路径问题   
解决方法为:
  修改 vc/atl 中的 StatReg.h   
  CParseBuffer的  
  AddString函数,  
  修改  
  lpszT++  
  为  
  lpszT   =   CharNext(lpszT);    

 

BOOL AddString(LPCOLESTR lpsz)
  {
   USES_CONVERSION;
   LPCTSTR lpszT = OLE2CT(lpsz);
   while (*lpszT)
   {
    AddChar(lpszT);
    //lpszT++;  //jonfei 注
    lpszT   =   CharNext(lpszT); 
   }
   return TRUE;
  }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值