当前位置:编程学习 > C#/ASP.NET >>

C# + Win7(Win2008)openFileDialog对话框的“尝试读取或写入受保护的内存”错误

C#的Winform程序,内有一个很简单的openFileDialog1.ShowDialog() == DialogResult.OK语句,发布后在XP、2003环境下使用都正常,但是在Win7(64位)、Win2008下反复执行第三次就会报“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”错误。会是什么原因造成的?

开发是使用VS2008+.Net2.0。

下面是报错信息:

************** 异常文本 **************
System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
   在 System.Windows.Forms.FileDialogNative.IFileDialog.Unadvise(UInt32 dwCookie)
   在 System.Windows.Forms.FileDialog.RunDialogVista(IntPtr hWndOwner)
   在 System.Windows.Forms.FileDialog.RunDialog(IntPtr hWndOwner)
   在 System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
   在 System.Windows.Forms.CommonDialog.ShowDialog()
   在 System.Windows.Forms.Control.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   在 System.Windows.Forms.Button.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) --------------------编程问答-------------------- 补充一下,有人说提升运行权限可以解决,我测试了一下,貌似不是权限的问题。

直接打开发布安装后的程序目录,右键exe使用管理员方式运行,错误依旧。但是如果右键exe选择模拟windows2003运行,问题不再发生。所以看起来提升权限运行的方式好像不行。感觉是兼容性出了问题。 --------------------编程问答-------------------- 应该是兼容性出了问题。路过,帮顶下! --------------------编程问答-------------------- 我也遇到这个问题  能否加我QQ610116652 --------------------编程问答-------------------- 求解决啊求解决 --------------------编程问答-------------------- 我的是vs2005 + win7 64位,也是一样的问题 --------------------编程问答-------------------- 顶,我也遇到了 --------------------编程问答-------------------- 反复3次挂了?没有释放掉资源?我做的没啥问题啊~~ --------------------编程问答-------------------- 同道中人,我也遇到过这问题.......
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,