我做的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;
}