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