我有个对方给的DLL接口文件,文件名是INTR.DLL
函数是: int CC(int ID,
char* CODE1,
char* CODE2); safecall;
对方给出的文档中说明CODE2是双向参数,既是入参也是出参我是这样调用的
[DllImport("INTR.DLL", EntryPoint = "CC", CharSet = CharSet.Ansi)]public static extern int CC(int ID, Char[] CODE1, Char[] CODE2);
char[] CODE1= "....".ToArray();
char[] CODE2= "....".ToArray();
textBox1.Text = RTPC(101, CODE1, CODE2).ToString();
我入参现在很正常,返回的函数结果是对方给出的成功提示,但如何获取对方返回的CODE2里的值呢?我现在用
textBox1.Text = RTPC(101, CODE1, CODE2).ToString();只能获取到对方返回的0(成功)提示
函数是: int CC(int ID,
char* CODE1,
char* CODE2); safecall;
对方给出的文档中说明CODE2是双向参数,既是入参也是出参我是这样调用的
[DllImport("INTR.DLL", EntryPoint = "CC", CharSet = CharSet.Ansi)]public static extern int CC(int ID, Char[] CODE1, Char[] CODE2);
char[] CODE1= "....".ToArray();
char[] CODE2= "....".ToArray();
textBox1.Text = RTPC(101, CODE1, CODE2).ToString();
我入参现在很正常,返回的函数结果是对方给出的成功提示,但如何获取对方返回的CODE2里的值呢?我现在用
textBox1.Text = RTPC(101, CODE1, CODE2).ToString();只能获取到对方返回的0(成功)提示
[DllImport("INTR.DLL", EntryPoint = "CC", CharSet = CharSet.Ansi)]
public static extern int CC(int ID, ref byte CODE1, ref byte CODE2);传递时还是声明数组,例如byte[] code2 = ...,传递ref code2[0]
文档中函数属性是
int CC(int ID,
char* CODE1,
char* CODE2); safecall;
是不是我在C#中必须写成
[DllImport("INTR.DLL", EntryPoint = "CC", CharSet = CharSet.Ansi)]
public static extern int CC(int ID, ref byte CODE1, ref byte CODE2);把char*转换成byte ,不能用char[]?另外能给个实例么?
如现在我准备往CC函数里传 ID=1,CODE1="1,2,3,4",CODE2=""
我如何在textBox1中显示CC函数的值和在textBox2中显示CODE2的值?万分感谢