有一个DLL文件里有这么一个函数:ERRCODE jSetSerialNo(const char * pcszSerialNo)
这个函数返回二种值,正确的话为ERR_NONE,错误的话为ERR_SECURITY
我想在C#中使用该函数代码如下:
 [DllImport("j_MA.dll")]
 public static extern string jSetSerialNo(string pcszSerialNo);
 jSetSerialNo(textBox7.Text);
可我这里如果正确则返回空值,不正确程序就会出错,怎么才能像原始程序一样有两种返回值怎么获得呢?
我转换成string类型对吗?为什么会和源程序不一样的结果呢?得不到其他字符串结果

解决方案 »

  1.   

    你的ERR_NONE和ERR_SECURITY的值是枚举,还是字符串,还是其他
      

  2.   

    ERR_NONE 如果是整数宏定义:
    public static extern int jSetSerialNo(string pcszSerialNo);
      

  3.   

    up  以下,  我做过,现在忘了!参数有 : string类,   char[] 类   unsafe  * 指针类!有一个会成功, 我记忆就是 string | char[].你做试试吧, 不是到返回类型是什么 : 一般是  bool b =jSetSerialNo(textBox7.Text);if(b)... ; else ... ;
      

  4.   

    ERR_NONE 如果是整数宏定义:
    public static extern int jSetSerialNo(string pcszSerialNo);正解。