首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

2010中的两个有关问题

2012-04-06 
2010中的两个问题我程序里的一个button click中的代码如下String delete_stringString confirm_messagei

2010中的两个问题
我程序里的一个button click中的代码如下

  String delete_string;
  String confirm_message;
  if (ADOQuery1->RecordCount!=0)
  {
confirm_message = "你确定要删除用户" + ADOQuery1->FieldByName("user_id")->AsString + "吗?";
if (MessageBox(this->Handle, confirm_message.c_str(), "删除用户", 1)==1)
{
...

以上代码在2009里面跑的很正常,到2010里面遇到两个问题:

1. 编译出错,在红色字段“wanted 'const char *', got 'wchar_t *'”;
2. 我在2010的环境中发现"ADOQuery1->"之后没法找到FieldByName()这个函数。

不知道这是09到10后的变化引起的还是有什么其他情况,请大家帮忙看看,谢谢。

唔萨,回家吃饭先~

[解决办法]
1.2010中的String已定义成WideString,所以出错,两个解决方案:
 1)改 String confirm_message;为AnsiString confirm_message;
 2) 改
 if (MessageBox(this->Handle, confirm_message.c_str(), "删除用户", 1)==1) 
 为
 if (MessageBox(this->Handle, confirm_message.t_str(), "删除用户", 1)==1) 

本人建议用第1)方案,因为它在老版本中同样可用
2.我的2010没此问题,BCB的代码提示有时的确不是很好,如你前面程序有语法问题,后面的就不提示了。
[解决办法]
昨晚没有注意
对于我2楼的回复适用于Application->MessageBox()
如下面两种情况可以通过 

C/C++ code
String confirm_message= "Text";Application->MessageBox(L"Texxt",confirm_message.c_str() ,MB_ICONWARNING) ;//--------------------------------------------AnsiString confirm_message= "Text";MessageBox(this->Handle, confirm_message.c_str(), "删除用户", 1);
[解决办法]
confirm_message.t_str()

热点排行