1
Robert GieseckeのUnmanaged Exportsを使用して、SerialPort
クラスのオープンメソッドをC#クラスからDLLに変換しています。今のところ、コードは次のとおりです。DelphiアプリケーションのserialPortクラスを使用してC#unmanaged exports dllを呼び出す
[DllExport]
public static void OpenPort(string portName, int baudRate, int dataBits)
{
SerialPort serialPort = new SerialPort
{
StopBits = StopBits.One,
Parity = Parity.None,
ReadTimeout = 100,
WriteTimeout = -1,
PortName = portName,
BaudRate = baudRate,
DataBits = dataBits,
};
try
{
serialPort.Open();
}
catch (Exception)
{
throw new Exception("aaaaaaaaa");
}
}
私はDelphiでそれを呼び出すと、コードは次のとおりです。
procedure OpenPort(portName: string; baudRate: integer; dataBits: integer); stdcall;
external 'TestDll';
procedure TForm3.Button11Click(Sender: TObject);
begin
OpenPort('COM2', 19200, 8);
end;
しかし、Delphiはエラーを示しています。
External exception E0434352.
私は何をすべきか?
どのデルファイバージョンですか? – Blorgbeard
It's delphi XE10 Seattle @Blorgbeard –
私は 'serialPort.Open();'という行にコメントすると、delphiの呼び出しでうまくいくでしょう。だから私は例外がそれによってスローされると結論づけます。 –