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()这个指针有点特殊,查看一下帮助