| 2009-04-22 20:55:03 来自:曹雨萌 浏览数:136次 |
|
幼儿园小班回复于22日21点14分
确认一下参数的数据类型,保证正确.
|
|
默封晨回复于22日21点38分
不要沉啊,十万火急啊
|
|
caiximing0回复于22日22点01分
楼上提供的结构体不能通过编译啊,按3楼的改法也不行
|
|
Java学子回复于22日22点22分
C# code
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct SMIOID
{
[System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.I4)]
public uint size;
public IntPtr dwords;
}
其实这个真是要你自己去多试了 |
|
嘉虎9D回复于22日22点45分
最后一个结构体 最后一个结构体没错把.
|
|
王显阳回复于22日23点00分
参数应该是正确的,因为有试过能成个调用的,不过差不多100次就出1次这样的错误,这明显不能接受,而且我试过用string,char[]都可以执行,如果给的参数为空,是没有问题的
|
|
吕保涛回复于22日23点20分
我也遇到过,后来放弃了
|
|
hxf妈妈回复于22日23点43分
[System.Runtime .InteropServices .UnmanagedType.Struct] [StructLayout(LayoutKind.Sequential)] public struct SMIOID { [System.Runtime .InteropServices .UnmanagedType.I4] public uint size; public IntPtr dwords; } |
|
zz公主回复于23日03点00分
结构体原型 [StructLayout(LayoutKind.Sequential)] public struct SMIOID { public uint size; public IntPtr dwords; } |
|
汪逸玮回复于23日03点32分
C/C++ code
C++
SNMPAPI_STATUS SnmpStrToOid(
__in LPCSTR string,
__out smiLPOID dstOID
);
对应的把ref 改成 out试试 C# code [DllImport("wsnmp32.dll")] public static extern SNMPAPI_STATUS SnmpStrToOid(StringBuilder str, out SMIOID oid); StringBuilder name2 = new StringBuilder(256); name2.Append("1.3.6.1.2.1.2.2.1.16"); SnmpAPI.SnmpStrToOid(name2, out Oid); 然后确保你的SMIOID 结构体的定义也进行了转化,很多时候是你的结构体原型的问题,最好把它也贴上来。 |
> 返回话题列表