C#使用dll,类型该怎么匹配?报了“尝试读取或写入受保护的内存,这通常指示其它内存已损坏”,帮小弟看一下dll的API中,一个打开计算机接口的函数定义如下apiStatus AbcCommOpen (HANDLE * hCom, char *com_port)
参数 
 Com_port: 串口名 hCom: 串口句柄指针 
返回值 
 成功返回 0 ,失败返回非 0 值 
但是小弟不知道该怎样在C#中定义参数类型[DllImport("AbcApiV10.dll", EntryPoint = "AbcCommOpen", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
 public static extern int AbcCommOpen(long hCom, string com_port);
使用:public static long hCom;
if (API.AbcCommOpen(hCom, "COM3") == 0)
{
    MessageBox.Show("打开成功");
}
运行
然后报“尝试读取或写入受保护的内存,这通常指示其它内存已损坏”
dll中的类型,怎样跟C#中的类型匹配啊?这个问题该怎么解决啊?