Конвертируйте фрагмент кода Delphi в C ++ Builder - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю с ловушкой ошибок EurekaLog для Delphi / C ++ Builder. Все их примеры в 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");
}

1 Ответ

0 голосов
/ 06 ноября 2018

Вам нужно создать новый класс, а не использовать typedef. И не используйте new при вызове throw (это область only в C ++ Builder, где потомок TObject не должен быть создан с new).

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

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