C#调用dll问题。原型说明都有。
调用test.dll:long oa(unsigned long msgshow,unsigned long p,unsigned long c,char *str,LPTSTR com);
参数说明:
msgshow:业务类型;p:格式类型; c:长度;str:数据串;调用时,通过数据串传入参数;函数返回时,数据串中包含返回的数据; com:数据串口
使用注意:函数返回时向数据串中进行写操作。
函数返回值:函数通过字符串和函数返回值来返回函数的执行结果
当函数返回值等于0时,表示成功,字符串中包含了业务处理后返回的数据
当函数返回值不等于0时,出现错误。
我的做法是:
[DllImport("test.dll", ExactSpelling = true, SetLastError = true)]
public static extern int oa(UInt32 msgshow, UInt32 p, UInt32 c, StringBuilder str, string com);
private void button_dq_Click(object sender, EventArgs e)
{
StringBuilder strS=new StringBuilder();
if (oa(1001, 101, 126, strS, "AUTO") == 0)
{
textBox_xx.Text = strS.ToString();
MessageBox.Show(oa(1001, 101, 126, strS, "AUTO").ToString());
}
else
{
MessageBox.Show("错误:" + oa(1001, 101, 126, strS, "AUTO").ToString());
}
}
但是总是最后错误接口参数错误。。。