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

被折叠的 条评论
为什么被折叠?



