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

在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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanxiaochengyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值