另外extern "C" __declspec(dllexport) int PASCAL RCODE(char code[7]); 不改有没有方法,因为我在vb.net和vc中都能调用 而且dll是别人写好的 我不能改
用你的方法出现三个错误: 1.C:\Documents and Settings\Administrator\桌面\test1\Form1.cs(1386): 与“test1.Form1.RCODE(char[])”最匹配的重载方法具有一些无效参数 2.C:\Documents and Settings\Administrator\桌面\test1\Form1.cs(1386): 参数“1” : 无法从“char[]*”转换为“char[]” 3.C:\Documents and Settings\Administrator\桌面\test1\Form1.cs(1386): 无法获取托管类型(“char[]”)的变量地址或大小因为我无法修改dll的函数定义
extern "C" __declspec(dllexport) int PASCAL RCODE(char code[7]);
我用vb.net和vc
都能调了
怎么c#就不行了
unsafe
{
char[] mycode=new char[7];
returncode=RCODE(&mycode);
}
当然RCODE函数要做相应的改动。
==》
extern "C" __declspec(dllexport) int PASCAL RCODE(char* code);
{
char[] mycode=new char[7];
returncode=RCODE(&mycode);
}
这里通不过:C:\Documents and Settings\Administrator\桌面\test1\Form1.cs(1386): 参数“1” : 无法从“char[]*”转换为“char*”
不改有没有方法,因为我在vb.net和vc中都能调用
而且dll是别人写好的
我不能改
1.C:\Documents and Settings\Administrator\桌面\test1\Form1.cs(1386): 与“test1.Form1.RCODE(char[])”最匹配的重载方法具有一些无效参数
2.C:\Documents and Settings\Administrator\桌面\test1\Form1.cs(1386): 参数“1” : 无法从“char[]*”转换为“char[]”
3.C:\Documents and Settings\Administrator\桌面\test1\Form1.cs(1386): 无法获取托管类型(“char[]”)的变量地址或大小因为我无法修改dll的函数定义
unsafe
{
char[] mycode=new char[7];
returncode=RCODE(mycode);
}
{
char[] mycode=new char[7];
returncode=RCODE(&mycode[0]);
}
不过我已经解决了
用sting做参数传递
用stringbuild给string 分配空间就行了
不好意思,因为没时间去实际测试,没能帮上你!