尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
//获取窗口句柄
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,
string lpWindowName);
//获取窗口中控件的句柄
[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent,
IntPtr hwndChildAfter, string lpszClass, string lpazWindow);
[DllImport("HCNetSDK.dll")]
public static extern int NET_DVR_RealPlay_V30(int lUserID, NET_DVR_CLIENTINFO struPlayInfo, string a, string b, bool bPreviewBlock);
//软解码预览参数
public struct NET_DVR_CLIENTINFO
{
public int lChannel;
public long lLinkMode;
public IntPtr hPlayWnd;
public string sMultiCastIP;
};
NET_DVR_CLIENTINFO struPlayInfo = new NET_DVR_CLIENTINFO();
IntPtr mwh = FindWindow(null, "Form");
IntPtr m_hWnd = FindWindowEx(mwh, IntPtr.Zero, null, "Panel2");
struPlayInfo.hPlayWnd = (IntPtr)m_hWnd; //设置播放句柄为有效句柄
struPlayInfo.lChannel = 1; //预览通道号
struPlayInfo.lLinkMode = 0;//最高位(31)为0表示主码流,为1表示子码流0~30位表示连接方式:0-TCP方式;1-UDP方式;2-多播方式;3-RTP方式;
bool bPreviewBlock = false; //请求码流过程是否阻塞,0:否,1:是
//软解码实现过程
m_lPlayHandle = NET_DVR_RealPlay_V30(lUserID, struPlayInfo, null, null, bPreviewBlock);
然后就是 m_hwnd =0. 导致NET_DVR_RealPlay_V30 提示尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
谁能帮我看看是怎么回事啊 ? 我刚开始接触这块,不怎么懂。
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,
string lpWindowName);
//获取窗口中控件的句柄
[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent,
IntPtr hwndChildAfter, string lpszClass, string lpazWindow);
[DllImport("HCNetSDK.dll")]
public static extern int NET_DVR_RealPlay_V30(int lUserID, NET_DVR_CLIENTINFO struPlayInfo, string a, string b, bool bPreviewBlock);
//软解码预览参数
public struct NET_DVR_CLIENTINFO
{
public int lChannel;
public long lLinkMode;
public IntPtr hPlayWnd;
public string sMultiCastIP;
};
NET_DVR_CLIENTINFO struPlayInfo = new NET_DVR_CLIENTINFO();
IntPtr mwh = FindWindow(null, "Form");
IntPtr m_hWnd = FindWindowEx(mwh, IntPtr.Zero, null, "Panel2");
struPlayInfo.hPlayWnd = (IntPtr)m_hWnd; //设置播放句柄为有效句柄
struPlayInfo.lChannel = 1; //预览通道号
struPlayInfo.lLinkMode = 0;//最高位(31)为0表示主码流,为1表示子码流0~30位表示连接方式:0-TCP方式;1-UDP方式;2-多播方式;3-RTP方式;
bool bPreviewBlock = false; //请求码流过程是否阻塞,0:否,1:是
//软解码实现过程
m_lPlayHandle = NET_DVR_RealPlay_V30(lUserID, struPlayInfo, null, null, bPreviewBlock);
然后就是 m_hwnd =0. 导致NET_DVR_RealPlay_V30 提示尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
谁能帮我看看是怎么回事啊 ? 我刚开始接触这块,不怎么懂。
...全文
相关推荐
关于 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。的解决方法
主要介绍了尝试读取或写入受保护的内存。这通常指示其他内存已损坏。的解决方法,有需要的朋友可以参考一下
Phonetic Bandbag Simulation
MATFOR4.1的demo中有个pbg项目(Phonetic Bandbag Simulation),无论怎么改,都有个错误“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”。查遍网络,最后弄清楚了,GC是单独的一个线程,跨线程释放内存就会造成这样的问题。这是修改过的文件,希望对您有用。 如果您使用多核,且您正在使用MATFOR4.1,不妨下载下来试试看。
C语言读取文件数据,写入内存
作为一个新手学习C语言读写数据,我整合了一下自己查找的一些资料,用C语言实现将一个文件读入内存中,里面有运行工具,和一个word文档代码。
EXCEL读取和写入
使用LABVIEW读取和写入Excel,使用Labview2017,可以是低版本,但是函数选板中至少要有报表生成部分。
IntelliJ IDEA设置显示内存指示器和设置内存大小的方法
主要介绍了IntelliJ IDEA设置显示内存指示器和设置内存大小的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


