原函数
typdedef struct tagParam
{
char Port[3];
char CtrlID[3];
char Params[1024];
char IPPort[5];
char IPAddr[15];
}
unsigned short OpenComm(Params & lParam, int sType)
如下为我转换后的
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
private struct Param
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 3)]
public string Port;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 3)]
public string CtrlID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
public string Params;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)]
public string IPPort;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 15)]
public string IPAddr;
} private short sType=401; [DllImport("CM60.dll")]
private static extern short OpenComm(ref Param par, short stype); public short Open()
{
Param par = new Param();
par.Port = "003";
return OpenComm(ref par, sType);
}
在调用Open()方法时一直不成功,请各位帮一下忙呀。不好意思没分了给我的点少哈
typdedef struct tagParam
{
char Port[3];
char CtrlID[3];
char Params[1024];
char IPPort[5];
char IPAddr[15];
}
unsigned short OpenComm(Params & lParam, int sType)
如下为我转换后的
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
private struct Param
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 3)]
public string Port;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 3)]
public string CtrlID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
public string Params;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)]
public string IPPort;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 15)]
public string IPAddr;
} private short sType=401; [DllImport("CM60.dll")]
private static extern short OpenComm(ref Param par, short stype); public short Open()
{
Param par = new Param();
par.Port = "003";
return OpenComm(ref par, sType);
}
在调用Open()方法时一直不成功,请各位帮一下忙呀。不好意思没分了给我的点少哈
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货