读书人

c# 调用c dll 时出现尝试读取或写入受

发布时间: 2011-12-31 23:50:30 作者: rapoo

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 试试

读书人网 >C#

热点推荐