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

BCB奇怪的有关问题

2012-02-20 
BCB奇怪的问题!我有一个函数:inline void RaiseException(AnsiString AMsg, ...){va_list apva_start(ap,

BCB奇怪的问题!
我有一个函数:  
inline void RaiseException(AnsiString AMsg, ...)
  {
  va_list ap;
  va_start(ap, AMsg);
  String str;
  str = str.sprintf(AMsg.c_str(), ap);
  va_end(ap);
  Owner->RaiseException(str);
  }
调用:
RaiseException("Maximum offset %d.", 1);

输出怎么会是:
Maximum offset 1243753

str = str.sprintf(AMsg.c_str(), ap);
这个结果就不对了!
但str = str.sprintf("Maximum offset %d.", 1);
又是正确的!说明是变参的问题!
哪位大侠帮忙解决下!

[解决办法]
.c_str()这个指针有点特殊,查看一下帮助

热点排行