C++builder 6.0转RAD studio(C++builder 2009及以上)常见问题处理

来源:互联网 发布:弯沉值计算软件 编辑:程序博客网 时间:2024/05/29 19:16

在BCB6.0工程向BCB2009及以上版本移植中,会出现各种各样的问题。如类型转换错误、不匹配,方法找不到等等....

终究原因为:在BCB6中默认字符串为AnsiString,但是在2009及以上版本中,默认为UnicodeString.


1、提示没有Tserversocket

解决办法:默认情况下TClientSocketTServerSocket这两个控件是没有安装到控件面板上,需要手动安装:

Component-->Install packages-->Add

找到$(BDS)\Bin\dclsockets140.bpl,这个文件,点击"OK"

INTERNET组件组中出现这两个控件。


2、 Cannot convert 'wchar_t *' to 'const char *'

       解决办法:将.c_str()方法替换成.t_str() ,或者将字符串先转换成AnsiString,再调用c_str()方法: AnsiString(str).c_str().

3、Cannot convert 'const char *' to 'const wchar_t *'

 字符串前面加L,例如:L"hello"。“L”意思

就是wide char的意思。平时用的ASCII,一个字符占一个字节。UNICODE用宽字符,一个字符占两个字节。例如:单字符,char* str = "hello";           宽字节,wchar_t* wStr = L"hello"。

3、 'AnsiCompareIC' is not a member of 'UnicodeString' 

       解决办法:AnsiCompareIC改成 CompareIC,或者改用SameText(str1,str2)方法

       此类问题,注意将AnsiString的方法改成UnicodeString中的方法

4、UnicodeString 转UTF8,解决中文乱码问题

      

RawByteString strRaw;UnicodeString  ustr="你好";strRaw=UTF8Encode(ustr);


0 0
原创粉丝点击