求救:c# 传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)

问题描述

c中结构体定义为typedefstruct_CAM_GROUP_INFO{intnCamGroupID;//cameragroupidcharszGroupName[64];//cameragroupnameintnServerID;//belongtowhichserverintstate;//MP_CAM_StateXXXX}CAM_GROUP_INFO;我现在在c#中定义结构体[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Unicode,Pack=1)]publicstructCAM_GROUP_INFO{publicintnCamGroupID;//cameragroupid[MarshalAs(UnmanagedType.ByValArray,SizeConst=64)]publicchar[]szGroupName;//cameragroupnamepublicintnServerID;//belongtowhichserverpublicintstate;//MP_CAM_StateXXXX};封装对应有两个方法,//从服务器得到视频组列表[DllImport(@"E:dllplayback_dlldebugplayback_dll.dll",EntryPoint="CCameraMngr_RetrieveCamGroupListFromServer",CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]publicstaticexternintCCameraMngr_RetrieveCamGroupListFromServer([In,Out]intSelf,intnServerID,[In,Out]CAM_GROUP_INFO[]pCamGroupList,intiMaxSize);//释放从服务器得到的视频组列表[DllImport(@"E:dllplayback_dlldebugplayback_dll.dll",EntryPoint="CCameraMngr_FreeCamGroupList",CharSet=CharSet.Unicode,CallingConvention=CallingConvention.StdCall)]publicstaticexternvoidCCameraMngr_FreeCamGroupList([In,Out]intSelf,[In,Out]CAM_GROUP_INFO[]pCamGroupList);像你说的如果我用CharSet=CharSet.Unicode在c#中像上面这样申明结构体,则释放不会出错,但是获取CCameraMngr_RetrieveCamGroupListFromServer这个函数得到的结构体的数据就不对,里面只有nCamGroupID是正确的其他都是0,字符类型的是乱码,如果改成ansi申明结构体,则得到数据都是正确的,但释放那个函数会报“传递给系统调用的数据区域太小。(异常来自HRESULT:0x8007007A)”错误,请求大虾帮忙!!

解决方案

解决方案二:
我也遇到了这个问题,就是不知道怎么解决,期待中。。。。。。
解决方案三:
我也遇到这个问题,各种办法都试过了,没法解决

时间: 2024-08-01 04:44:59

求救:c# 传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)的相关文章

javascript-IE下JS报错:传递给系统调用的数据区域太小

问题描述 IE下JS报错:传递给系统调用的数据区域太小 document.location = param: 打断点看是这句报的错,param很长,有600多个字符,是不是这个原因啊? 解决方案 在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样的,当然,不一样的Web服务器能够处理的最大长度的URL的能力也是不一样的. 下面就是对各种浏览器和服务器的最大处理能力做一些说明. Microsoft In

注册软件出现 system error code 122 传递给系统调用的数据区域太小

问题描述 在注册软件出现 system error code 122 传递给系统调用的数据区域太小,注册的用户名是中文,如果用英文的就没问题 解决方案 很多软件安装都不支持中文路径解决方案二:这个估计是软件的bug吧, 比如oracle9i安装时不能有中文路径

C#的dategridview导出数据时报错 (异常来自 HRESULT:0x800A03EC)

问题描述 publicboolExportDataGridview(DataGridViewgridView,boolisShowExcle){if(gridView.Rows.Count==0){MessageBox.Show("请您检查是否有数据导出","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);returnfalse;}//创建Excel对象Microsoft.Office.Interop.Exc

Excel为数据区域创建动态快照

许多用户可能不会注意到Excel中这样一个非常有用的功能:为数据区域创建一个动态"快照",并将其放置在工作表中所需的位置.这里的动态"快照"指的是与数据区域相链接的图片,它可以随数据区域中数据的变化而发生动态的变化. 要使用这一功能,可以按如下步骤进行操作(下载练习用Excel工作簿): 1.选择一个数据区域,如图1所示. 图1 2.选择菜单命令"编辑>复制". 3.单击数据区域之外的其它空白单元格,然后按住Shift键的同时选择菜单命令&

Excel 2013中为数据区域添加背景图片的的方法

  Excel 2013中为数据区域添加背景图片的的方法           1.启动Excel 2013并打开工作表,在"页面布局"选项卡的"页眉设置"组中单击"背景"按钮,如图1所示. 图1 单击"背景"按钮 2.打开"插入图片"窗口,单击"来自文件"按钮,如图2所示.此时将打开"工作表背景"对话框,选择作为背景的图片后单击"插入"按钮将其插入

excel如何快速移动部分数据区域?

  excel如何快速移动部分数据区域?         打开excel表格,然后输入内容,在其他栏中在做一列数据. 首先先选中部分数据. 然后按住shift键拖动到自己想要插入的位置,此表是性别和成绩之间. 最后再放开鼠标,发现内容已经融入进去了. 如果想要插入到其他位置上去,方法是一样的,只要把内容拖动到想要的位置上,松开鼠标就可以.

如何通过密码设置来查看EXCEL部分数据区域?

  有些时候,我们需要在分发的EXCEL工作表中,对某些区域的内容进行查看限制.但是工作表的保护设置,只是对整个工作表而言的.有没有对部份数据区域,通过密码设置查看限定的方法呢?有,请随小编来一起练习吧! 下面两张图,分别是密码正确.不正确时表内容的显示效果:   1.1. 新建规则: 选取需要限制查看的表格区域(本例是工作表联系人!C1:G8区域),依次点击:开始/条件格式/新建规则;

Excel技巧:为数据区域创建动态快照

  许多用户可能不会注意到Excel中这样一个非常有用的功能:为数据区域创建一个动态"快照",并将其放置在工作表中所需的位置.这里的动态"快照"指的是与数据区域相链接的图片,它可以随数据区域中数据的变化而发生动态的变化. 要使用这一功能,可以按如下步骤进行操作 1.选择一个数据区域,如图1所示. 图1 2.选择菜单命令"编辑>复制". 3.单击数据区域之外的其它空白单元格,然后按住Shift键的同时选择菜单命令"编辑>粘贴图

getcellvar函数-cell插件根据变量名称查找单元格和数据区域,下面的代码会出现类型不匹配

问题描述 cell插件根据变量名称查找单元格和数据区域,下面的代码会出现类型不匹配 var a: var col; var row; var sheet; a = document.getElementById("DCellWeb1").GetCellVar("ce",col,row,sheet);