原本有个小程序是多字符编码的
因为需要改成UNICODE版,把代码反复检查了确保各个函数,字符都修改了,可是一运行却弹出05的访问冲突错误
而且VS2005给出错误行是一个CString str = TEXT("ABC");
我就很郁闷哪~这句怎么会报错?难道新定义的就是赋值都不行?
于是在代码里反复的查看代码,逐行调试依然没有结果.
突然想到UNICODE下字符长度就不同了.
连忙看看代码中有没有取长度的地方:
果然,
在CString上面几行中有这么两句
TCHAR buf[MAX_PATH];
::GetTempPath(sizeof(buf),buf);
汗~~~~~就是这个sizeof()在做怪;
TCHAR buf[MAX_PATH];
::GetTempPath(MAX_PATH,buf);
稍做修改便正常运行了!