将 Delphi 代码片段转换为 C++Builder

Convert a snippet of Delphi code to C++Builder

我正在为 Delphi/C++Builder 使用 EurekaLog bug catcher。他们的所有示例都在 Delphi 中,我正在使用 C++Builder。下面的 Delphi 代码是导致软件异常的示例之一。我试图将其转换为下面的 C++,但我的代码是错误的。你能告诉我正确的 C++ 代码来完成这项工作吗?

Delphi 来自 EurekaLog 的代码

type
  EMyException = class(Exception);

Procedure TForm. ButtonClick(Sender: TObject);
begin
 raise EMyException.Create('Error Message');
end;

end.

我的 C++Builder 代码不起作用

typedef class{
  Exception;
}EMyException;

void __fastcall TForm1::ButtonClick(TObject *Sender)
{
  throw new EMyException("Error Message");
}

您需要派生一个新的 class,而不是使用 typedef。并且在调用 throw 时不要使用 new(这是 C++Builder 中的 only 区域,其中不得构造 TObject 后代new).

class EMyException : public Exception
{
public:
    __fastcall EMyException(const String Msg) : Exception(Msg) {}
};

void __fastcall TForm::ButtonClick(TObject *Sender)
{
    throw EMyException("Error Message");
}