装上CB2010,将以前的工程转过来,首先碰到的问题是AnsiString->UnicodeString。要想把程序彻底的改成Unicode,我总结了以下几点:
1,菜单Project->Options->Directories and Conditionals->_TCHAR maps to char 改为 wchar_t。(C++Builer2010的帮助文件中说,要使用VCL,这是必须的) 。
2,WinMain() 改成 _tWinMain。(新建工程不用改)。
3,const char s[N] = "abc"; 改成 const wchar_t s[N] = L"abc";或者 TEXT("abc");
4,AnsiString 改成 UnicodeString。
5,按键响应函数KeyPress( TObject *Sender, char &Key )中的 char 改为 wchar_t。(新建工程不用改)。
不足请大家指正。
最近装上Windows7,发现原先用OLE操作Excel的函数不工作了,提示“未能找到"TRUE.xls"文件”,经试验将这一行代码
vExcelApp.OlePropertyGet( L"WorkBooks" ).OleProcedure( L"Open", L"d://my01.xls" ); 改为:
vExcelApp.OlePropertyGet( L"WorkBooks" ).OleProcedure( L"Open", WideString(L"d://my01.xls") );后问题解决。
另外像 OlePropertySet( L"PrintTitleRows",L"$1:$1" ) 等函数,第二个参数也必须改为 WideString(L"$1:$1") 才行。
转自:http://blog.csdn.net/hong_qi/article/details/4946630