C# 调用C 机构体指针 总是报错

问题描述

C机构体:typedefstruct_UDP_DEVINFOBLOCK_PC{unsignedshortusDeviceType;unsignedcharucIP[4];unsignedcharucMAC[6];unsignedcharucInfo[256];_UDP_DEVINFOBLOCK_PC*pNext;}UDP_DEVINFOBLOCK_PC,*LPUDP_DEVINFOBLOCK_PC;SOCKETRF620_Connect(UDP_DEVINFOBLOCK_PC*);C#调用:[StructLayout(LayoutKind.Sequential)]publicstruct_UDP_DEVINFOBLOCK_PC//internal{[MarshalAs(UnmanagedType.U2)]publicushortusDeviceType;[MarshalAs(UnmanagedType.ByValArray,SizeConst=4)]publicbyte[]ucIP;[MarshalAs(UnmanagedType.ByValArray,SizeConst=6)]publicbyte[]ucMAC;[MarshalAs(UnmanagedType.ByValArray,SizeConst=256)]publicbyte[]ucInfo;publicIntPtrpNext;};[DllImport("rf620LanLib.dll")]publicstaticexternSocketRF620_Connect(ref_UDP_DEVINFOBLOCK_PCUDP_DEVINFOBLOCK_PC);public_UDP_DEVINFOBLOCK_PCUDP_DEVINFOBLOCK_PC1;///////UDP_DEVINFOBLOCK_PC1.usDeviceType=0;UDP_DEVINFOBLOCK_PC1.ucIP=newbyte[4]{192,168,0,1};UDP_DEVINFOBLOCK_PC1.ucMAC=newbyte[6]{1,1,1,1,1,1};UDP_DEVINFOBLOCK_PC1.ucInfo=newbyte[256];UDP_DEVINFOBLOCK_PC1.pNext=(IntPtr)(0);for(i=0;i<256;i++){UDP_DEVINFOBLOCK_PC1.ucInfo[i]=0;}//////sRF620=AP620.RF620_Connect(refUDP_DEVINFOBLOCK_PC1);////总是在这里报错

解决方案

解决方案二:
我去,你也不把个错误提示贴出来,public_UDP_DEVINFOBLOCK_PCUDP_DEVINFOBLOCK_PC1;这里要New的,不new就没有空间

时间: 2024-09-12 23:21:24

C# 调用C 机构体指针 总是报错的相关文章

java-RMI本地client调用远程服务器上的server报错

问题描述 RMI本地client调用远程服务器上的server报错 代码这篇文章上的.Java RMI之HelloWorld篇 我把ihello,helloimpl,server放在了服务器上,client放在了本机电脑的eclipse中 保证远程服务器上的server正常运行,运行client报错 Caused by: java.lang.ClassNotFoundException: IHello (no security manager: RMI class loader disabled

weblogic连接池-Java调用Oracle存储过程传入数组参数报错

问题描述 Java调用Oracle存储过程传入数组参数报错 weblogic连接池 JNDI提供的链接保存 Oracle数组 报错 oracle.jdbc.driver.T4CConnection cannot be cast to oracle.jdbc.OracleConnection oracle.jdbc.driver.T4CConnection cannot be cast to oracle.jdbc.OracleConnection 大家好,我在用weblogic连接池 JNDI

关于android 调用自己编译的su文件报错的问题

问题描述 关于android 调用自己编译的su文件报错的问题 百度加google,自己弄了一个zlsu执行文件,放到system/bin/目录下后,调用它的时候,报错: java.io.IOException: write failed: EPIPE (Broken pipe). 解决方案 su文件代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/type

ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法       群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebService方法,总报这个错误,贴图如下: 解决办法:      1.确定你的Silverlight项目及承载Silverlight的Web程序根目录下都包含2个跨域文件,分别是crossdomain.xml和clientaccesspolicy.xml:  crossdomain.xml文件,

web service-jboss5环境下,cxf和axis调用webservice客户端都是不报错,不返回结果

问题描述 jboss5环境下,cxf和axis调用webservice客户端都是不报错,不返回结果 有谁碰到过这种问题,cxf和axis调用webservice没问题,部署到jboss5里面就有问题, 不报错,不返回结果 解决方案 http://blog.csdn.net/shiqi472807092/article/details/8254494

脚本-写火狐扩展,调用本地的vbs文件,报错错误:0x800700c1代码:800700c1源(null)

问题描述 写火狐扩展,调用本地的vbs文件,报错错误:0x800700c1代码:800700c1源(null) 写火狐扩展,调用浏览器本地的vbs文件,报错错误:0x800700c1 代码:800700c1 源(null),但是直接鼠标双击打开正常,vbs文件的内容如下: createobject("wscript.shell").run "tortoiseProcScript.bat",0,true wscript 和cscript2种打开方式都试过,例如 用&q

工具-移动设备调用Web应用使用RedisSession机制报错ERR DISCARD without MULTI

问题描述 移动设备调用Web应用使用RedisSession机制报错ERR DISCARD without MULTI 1.应用web服务是提供给手机访问的,所以网络为无线网络 2.使用的Session机制是redis工具包,多个节点Session配置为共享 import com.ovea.jetty.session.redis.RedisSessionIdManager; import com.ovea.jetty.session.redis.RedisSessionManager; 3.目前

c#调用delphi编写的dll文件报错,尝试读取或写入受保护的内存

问题描述 c#调用delphi编写的dll文件报错,尝试读取或写入受保护的内存 delphi函数原型 Procedure invoke(params :PChar; result : PChar) ; 解决方案 把这个delphi的原型改一下,改为 Function Pchar invoke(params :PChar) ; 再试试 解决方案二: Function invoke(params: PAnsiChar): PAnsiChar ;

jni-坐等,调用别人写好的JNI报错

问题描述 坐等,调用别人写好的JNI报错 错误如下: [armeabi-v7a] Compile++ thumb: hue_core <= NativeServer.cpp In file included from F:/GuohuaLight_JNI//jni/NativeServer.cpp:10:0: F:/GuohuaLight_JNI//jni/event_server.h:13:28: fatal error: android/looper.h: No such file or d