C#中要指针首先要把类或者函数声明为unsafe,本例中用的金迪的vc动态函数库,
如 :
[DllImport("JindiSMS.dll")]
unsafe public static extern int ATCommand (char* ATCmd,char* result);
功能描述:
向串口发送 AT 指令, 获得响应结果 参数说明: ATCmd
指令字符串, result 返回的结果字符串
返回值: 0 失败
1 成功
在C#中调用时传参函数 :
//发送AT指令
private unsafe void btnSendATCom_Click(object sender, EventArgs e)
{
string result = string.Empty;
string atCmd = this.txtATCom.Text.Trim() + "/r";
char* p = (char*)System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(atCmd).ToPointer();
char* q = (char*)System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(result).ToPointer();
int i = SetPort.ATCommand(p, q);
if (i == 1)
{
txtRestAt.Text = Convert.ToString(Marshal.PtrToStringAnsi((IntPtr)q));
}
else
{
txtRestAt.Text = "错误";
}
}