本帖最后由 bolt001 于 2015-03-12 21:20:35 编辑

解决方案 »

  1.   

     public static extern ushort GetInfo(StringBiuder Manufacturer, StringBiuderProducer,  StringBiuder SerialNumber,  StringBiuderBufLength);
      

  2.   

    没太明白你的意思,你是要调用1中的函数,还是要定义你最下面问的那个方法?   如果直接调用1中的函数的话,他返回的是一个值,你就定义一个整型变量来接收他:int result = GetInfo(‘参数1’,‘参数2’,‘参数3’,‘参数4’);
    如果你是要定义一个方法,然后来调用这个方法的话,就是:
    public static ushort GetInfo(string Manufacturer, string Producer, string SerialNumber, string BufLength)   //此方法返回一个值
    {
            .....你要实现的代码;
    }然后再你要调用的方法下面:
    string Manufacturer = null, Producer = null, SerialNumber = null, BufLength = null;    //定义变量来当参数
     int  result = GetInfo(Manufacturer, Producer, SerialNumber, BufLength);   //定义整型来接收方法返回的值。
      

  3.   

    上面忘记写返回了,现在加上
    如果直接调用1中的函数的话,他返回的是一个值,你就定义一个整型变量来接收他:int result = GetInfo(‘参数1’,‘参数2’,‘参数3’,‘参数4’);
    如果你是要定义一个方法,然后来调用这个方法的话,就是:
    public static ushort GetInfo(string Manufacturer, string Producer, string SerialNumber, string BufLength)   //此方法返回一个值
    {
            ushort  result = 0;
            ...代码
            return result ;
    }  然后再你要调用的方法下面:
    string Manufacturer = null, Producer = null, SerialNumber = null, BufLength = null;    //定义变量来当参数
     int  result = GetInfo(Manufacturer, Producer, SerialNumber, BufLength);   //定义整型来接收方法返回的值。
      

  4.   

    1)dll是C++中定义的函数,也是C#准备调用的;
    2)是源程序的在C++中的调用;共大家参考的;1楼的方法编译通不过,string无法转到StringBuilder
    2楼的方法编译通过,但是不能运行,提示发生未经处理的win32异常。
    谢谢大家了
      

  5.   

    ..你真不懂C#? 上面改参数类型,也边的引用,当然也要跟着改呀,汗。
    你直接string 传给StringBuilder当然编译不通过。。