【问题标题】:Convert a snippet of Delphi code to C++Builder将一段 Delphi 代码转换为 C++Builder
【发布时间】:2018-11-06 17:58:21
【问题描述】:

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

来自 EurekaLog 的 Delphi 代码

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");
}

【问题讨论】:

    标签: delphi c++builder eurekalog


    【解决方案1】:

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

    class EMyException : public Exception
    {
    public:
        __fastcall EMyException(const String Msg) : Exception(Msg) {}
    };
    
    void __fastcall TForm::ButtonClick(TObject *Sender)
    {
        throw EMyException("Error Message");
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多