ser*_*hio 3 .net visual-studio-2010 visual-studio .net-2.0 windows-7
我有一个.NET应用程序和它的设置.使用VS 2005构建.
开发机器是Windows XP SP3.
有人在Windows7下安装它.并得到以下错误
WinForm ThreadException
System.AccessViolationException:尝试读取或写入受保护的内存.这通常表明其他内存已损坏. 在 System.Windows.Forms.UnsafeNativeMethods.IOleObject.DoVerb(的Int32 iVerb,IntPtr的LPMSG,的IOleClientSite pActiveSite,的Int32 LINDEX,IntPtr的hwndParent,COMRECT lprcPosRect) 在 System.Windows.Forms.AxHost.DoVerb(动词的Int32) 在 System.Windows. Forms.AxHost.InPlaceActivate()
另外一个
抛出了类型'System.Windows.Forms.AxHost + InvalidActiveXStateException'的异常.目前无法调用方法"Disconnect".
现在,想知道问题出在哪里,并在这台Windows7上安装了VS 2005.现在,该解决方案可以无异常地编译和运行.我构建了这个设置,并在这台Win7机器上重新安装了新构建的设置......
我有例外.为什么这个?
应用程序没有使用VS启动的异常,但在启动已安装的可执行文件后抛出它...
但是,我成功(没有例外)在OS> Win XP:Windows 7(x64)和Windows Server 2008(x64)的某些机器上测试了已安装的应用程序......
研究日志,我发现产生异常的代码:
Panel p = new Panel();
p.Margin = new Padding(0);
p.Dock = DockStyle.Fill;
p.Controls.Add(display); // 'display' is an ActiveX control instance
Logger.LogMessage("before");
this.tableLayoutPanel.Controls.Add(p); // protected memory EXCEPTION
Logger.LogMessage("after");
所以,我看到" 之前 "然后   AccessViolationException: Attempted to read or write protected memory...看不到" 之后 "......
这种例外的常见原因是什么?
ProgramFiles.我用C:\ TestFolder作为安装路径 - 结果是一样的:AccesViolationException ....哇,x84 CPU,从未见过其中之一;-))你的意思可能是x64 ......
您的Windows XP安装是64位吗?
它可能是32/64位转换问题,而不是Windows 7问题.
Forms.UnsafeNativeMethods.IOleObject
你ping你的ActiveX DLL吗?
它是32位dll还是64位dll?32位dll不会在64位环境中运行,反之亦然.
如果你通过COM调用它,你可能有机会.但至少在Linux上,C/C++数据类型长在64位模式下有8个字节,而在32位模式下有4个字节.
尝试在.NET应用程序中定位x86平台(= 32位).
| 归档时间: | 
 | 
| 查看次数: | 2535 次 | 
| 最近记录: |