【发布时间】:2016-08-23 03:33:24
【问题描述】:
我正在使用 Robert Giesecke 的 Unmanaged Exports 将 C# 类中 SerialPort 类的 open 方法放入 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报错:
外部异常 E0434352。
我该怎么办?
【问题讨论】:
-
什么delphi版本?
-
这是德尔福 XE10 西雅图 @Blorgbeard
-
当我评论 'serialPort.Open();' 行时,在 delphi 调用中会很好。所以我得出结论,异常是由它引发的。
-
Delphi 字符串与 .dotnet 字符串不同
-
@MBo 那么,我该怎么办?谢谢。