初始化函数:InitComm
说明:在外部程序调用本接口程序时,必须先调用此函数,完成串口初始化,调用一次即可。
函数原型:
function InitComm(commname:pchar;braudrate:pchar):boolean入参:commname 串口名称如com1 类型:字符指针型
      Braudrate 波特率 传9600类型:字符指针型
出参:无
函数返回结果 true初始化成功 false失败请问c#如何定义InitComm,参数类型是什么啊?

解决方案 »

  1.   

    先用string,不行的话,用StringBuilder
      

  2.   

    都试过了,都不行[DllImport(@"xx.dll")]
    private static extern bool InitComm( StringBuilder a, StringBuilder  b);[DllImport(@"xx.dll")]
    private static extern bool InitComm( string a, string b);
      

  3.   

    pchar可以用MarshalAs(UnmanagedType.LPStr)
    但是如果Delphi的函数没有加上stdcall;那么可能使用的是fastcall,那么无法被C#调用。
      

  4.   

    to:caozhy 
    那如何能知道他是否能被c#调用呢?
      

  5.   

    问题已经解决
    其实问题很简单,就是参数类型的问题,参数类型选择byte[]
    看来跨语言平台调用dll的时候要特别注意数据类型的对应
      

  6.   

    DllImport(@"xx.dll")]
    private static extern bool InitComm( byte[] a, byte[] b);这样就可以了