初始化函数:InitComm
说明:在外部程序调用本接口程序时,必须先调用此函数,完成串口初始化,调用一次即可。
函数原型:
function InitComm(commname:pchar;braudrate:pchar):boolean入参:commname 串口名称如com1 类型:字符指针型
Braudrate 波特率 传9600类型:字符指针型
出参:无
函数返回结果 true初始化成功 false失败请问c#如何定义InitComm,参数类型是什么啊?
说明:在外部程序调用本接口程序时,必须先调用此函数,完成串口初始化,调用一次即可。
函数原型:
function InitComm(commname:pchar;braudrate:pchar):boolean入参:commname 串口名称如com1 类型:字符指针型
Braudrate 波特率 传9600类型:字符指针型
出参:无
函数返回结果 true初始化成功 false失败请问c#如何定义InitComm,参数类型是什么啊?
private static extern bool InitComm( StringBuilder a, StringBuilder b);[DllImport(@"xx.dll")]
private static extern bool InitComm( string a, string b);
但是如果Delphi的函数没有加上stdcall;那么可能使用的是fastcall,那么无法被C#调用。
那如何能知道他是否能被c#调用呢?
其实问题很简单,就是参数类型的问题,参数类型选择byte[]
看来跨语言平台调用dll的时候要特别注意数据类型的对应
private static extern bool InitComm( byte[] a, byte[] b);这样就可以了