首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 调用c dll 时出现尝试读取或写入受保护的内存,这通常指示其他内存已损坏,该如何处理

2011-12-31 
c# 调用c dll 时出现尝试读取或写入受保护的内存,这通常指示其他内存已损坏 typedefstruct{DWORDdwYear//

c# 调用c dll 时出现尝试读取或写入受保护的内存,这通常指示其他内存已损坏

typedef   struct{
DWORD   dwYear;//年
DWORD   dwMonth;//月
DWORD   dwDay;//日
DWORD   dwHour;//时
DWORD   dwMinute;//分
DWORD   dwSecond;//秒
}NET_DVR_TIME,*LPNET_DVR_TIME;

NET_DVR_API   LONG   __stdcall   NET_DVR_FindNextFile(LONG   lFindHandle,LPNET_DVR_FIND_DATA   lpFindData);


        public   struct   NET_DVR_TIME
                {
                        public   int   dwYear;       /*     年   */
                        public   int   dwMonth;     /*     月   */
                        public   int   dwDay;       /*     日   */
                        public   int   dwHour;     /*     时   */
                        public   int   dwMinute;     /*     分   */
                        public   int   dwSecond;     /*     秒   */
                }
                public   struct   NET_DVR_FIND_DATA
                {
                        public   string   sFileName;       /*     文件名   */
                        public   NET_DVR_TIME   struStartTime;   /*     文件的开始时间   */
                        public   NET_DVR_TIME   struStoptime;   /*     文件的结束时间   */
                        public   int   dwFileSize;       /*     文件的大小   */
                }

[DllImport( "HCNetSDK.dll ")]
                public   static   extern   int   NET_DVR_FindNextFile(int   lFindHandle,   ref   NET_DVR_FIND_DATA   lpFindData);    

 
  NET_DVR_FIND_DATA   strFileInfo=new   NET_DVR_FIND_DATA   ();
 
  bRet   =   NET_DVR_FindNextFile(m_lFileHandle,   ref   strFileInfo);


[解决办法]
[MarshalAs(UnmanagedType.LPArray)]byte[] sFileName

然后在byte[] 转换成STRING 试试

热点排行