C#调用dll执行这个会自动退出
迷路的风 2015-11-04 01:42:06 [DllImport("QHD_SmartMC.dll", EntryPoint = "QHD_OpenPort",
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
static extern int QHD_OpenPort(ref StringBuilder oErrMsg);
[DllImport("QHD_SmartMC.dll", EntryPoint = "QHD_ClosePort",
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
static extern int QHD_ClosePort(ref StringBuilder oErrMsg);
[DllImport("QHD_SmartMC.dll", EntryPoint = "QHD_ReadCard",
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
static extern int QHD_ReadCard(ref StringBuilder oInfo, ref StringBuilder oErrMsg);
int __stdcall QHD_OpenPort(char *oErrMsg);
int __stdcall QHD_ClosePort(char *oErrMsg);
int __stdcall QHD_ReadCard(char *oInfo,char *oErrMsg);
执行
private void button1_Click(object sender, EventArgs e)
{
StringBuilder str1 = new StringBuilder(0);
int str2 = QHD_OpenPort(ref str1);
textBox1.Text = str2.ToString();
textBox2.Text += str1.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
StringBuilder str1 = new StringBuilder(0);
int str2 = QHD_ClosePort(ref str1);
textBox1.Text = str2.ToString();
textBox2.Text += str1;
}
private void button3_Click(object sender, EventArgs e)
{
StringBuilder str0 = new StringBuilder(0);
StringBuilder str1 = new StringBuilder(0);
try
{
int str2 = QHD_ReadCard(ref str1,ref str0);
textBox1.Text = str2.ToString();
textBox2.Text += str1.ToString() + str0.ToString();
}
catch
{
textBox1.Text = "err";
}
}
就执行ReadCard 的时候什么也不提示直接退出掉了 怎么回事呀 是不是类型不对 大神帮下忙