我在RAD Studio 2009中遇到了一些问题。
如您所知,可以在MSVS中右键切换Unicode支持(右键单击solution-> properties-> character set = not set)。我需要在RAD Studio中找到这个功能,我知道它存在但不知道究竟在哪里。
这是唯一停止我在Socket Chat大学项目上的工作。
P.S.从CodeGear官方网站安装更新后出现问题。
是否可以关闭RAD Studio 2009中的Unicode支持?
回答
简短的回答:没有,没有这样的功能关闭的Unicode在RAD Studio 2009.
I`ve解决的问题是这样的:
wchar_t* str = Form2->Edit1->Text.w_str();
char* mystr = new char [Form2->Edit1->Text.Length() + 1];
WideCharToMultiByte(CP_ACP, 0, str, -1, mystr, Form2->Edit1->Text.Length() + 1, NULL, NULL);
MessageBox(NULL, mystr, "It`s ok", MB_OK);
delete []mystr;
,但在我看来,可以去看另一种方式
是否可以关闭它?更好的问题是:你应该关掉它吗?答案是:NO。
设计应用程序的目的很远,以便在序列化(例如,在应用程序的套接字中)时正确发送Unicode字符,而不是在Unicode世界中设计非Unicode程序。即使是一个简单的项目,原则上也值得学习Unicode。
准确地说,您可以通过修改“TCHAR maps to char”的项目选项来定义您的C++ Builder应用程序,而不需要定义#UNICODE标志。
这意味着,SendMessage函数将调用SendMessageA等,以及TCHAR
但是,如果你使用任何VCL功能,不存在非Unicode等同于那些。现在VCL继承Unicode,并且不能改变。
Re:你的“解决方案” - 有一个更简单的方法。这既TCHAR = char或wchar_t的工作原理:
MessageBox(NULL, Form2->Edit1->Text.t_str(), _TEXT("It`s ok"), MB_OK);
_TEXT宏等的使用可以在那里使用,所以如果移动到Unicode,它不会像显式字符串那样可怕。 – 2009-01-13 15:20:57
您可以选择使用的UnicodeString :: t_str()方法要小心。如果您在为Ansi而不是Unicode编译的项目中调用它,则t_str()将更改UnicodeString的内部内容。这可能会产生意想不到的副作用,特别是对于来自控件的UnicodeString值。
切斯特 - 你不需要直接调用WideCharToMultiByte()。让RTL做的工作适合你:
AnsiString s = Form2->Edit1->Text;
MessageBoxA(NULL, s.c_str(), "It`s ok", MB_OK);
有一个更好的办法,我不喜欢这样写道:
MessageBox(NULL, Form2->Edit1->Text.w_str(), L"It`s ok", MB_OK);
- 1. Visual Studio中的Xaml 2009支持
- 2. TReader/TWriter是否支持unicode?
- 3. V8是否支持Unicode?
- 4. Lua是否支持Unicode?
- 5. C++ Builder 2009是否支持Git?
- 6. RAD Studio 2009持久选择问题:Bug或功能?
- 7. 德尔福6与RAD Studio 2009一起
- 8. websocket是否可以支持gzip压缩?
- 9. 德尔福2009年和突触 - 测试和准备Unicode支持?
- 10. InstallShield2009 Unicode支持
- 11. firedac中的RAD Studio不可
- 12. 即使浏览器关闭后,是否可以保持会话?
- 13. 是否可以关闭一个端口?
- 14. 是否可以关闭Java Web Start?
- 15. C11 Unicode支持
- 16. Lucene支持Unicode吗?
- 17. Visual Studio 2008/2010中针对jQuery关闭的Intellisense支持{
- 18. 关闭的XML是否支持GetPivotData公式?
- 19. android中的unicode支持ndk
- 20. F1001 RAD STUDIO 2009中的内部代码生成器错误
- 21. 更改RAD Studio 2009中的编辑器字体
- 22. SQLAlchemy是否支持“闭包表?”
- 23. python unicode支持
- 24. android支持unicode?
- 25. Visual Studio 2010是否支持Unicode字符串中的Unicode字符的C++源代码
- 26. python 3.1.3是否支持csv模块中的unicode?
- 27. 如何检测.NET 4.0中的EBCDIC是否支持Unicode字符?
- 28. pytest是否支持测试名称中的unicode?
- 29. 是否可以不关闭StreamReader/StreamWriter以保持底层流的打开?
- 30. BizTalk 2006是否支持Visual Studio 2010
或许,如果你发布了关于“问题”的问题,有可能是一个解决方案即使在开启unicode支持的情况下也能正常工作。 – 2008-12-17 20:50:55
我需要从编辑中获取字符串。
TMainForm-> IPEdit-> Text.c_str()。
我认为它必须是char *返回值,但它是wchar_t *。我需要将其转换为char *以使用套接字函数。任何想法如何做到这一点? – chester89 2008-12-17 20:58:10