【发布时间】:2013-11-05 04:57:18
【问题描述】:
我正在研究 C++ Builder XE4 上的 AssertErrorProc。 我找到的delphi代码如下。
procedure AssertErrorHandler(
const iMsg, iFilename: String;
const iLineNo: Integer;
const iAddress: Pointer);
var
Err: String;
begin
Err :=
Format(
'%s (%s line %d @ %x)',
[iMsg, iFilename, iLineNo, Integer(iAddress)]);
ShowMessage(Err);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AssertErrorProc = AssertErrorHandler;
Assert(false);
end;
我很想将上面的代码转换成 C++ 代码,如下所示。
void __fastcall TForm1::AssertErrorHandler(const String iMsg,
const String iFilename, const int iLineNo,
const void* iAddress)
{
String Err;
Err = Format(L"%s (%s line %d @ %x)",
[iMsg, iFilename, iLineNo, Integer(iAddress)]); // E2188
ShowMessage(Err);
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
AssertErrorProc = AssertErrorHandler; // E2235, E2268
Assert(false);
}
我在编译代码时收到了两个错误。
在 Format() 语句 (E2188)
AssertErrorHandler (E2235, E2268) 赋值时
感谢任何我应该修改代码的信息。
【问题讨论】:
标签: c++ delphi c++builder assert