【问题标题】:Invalid access to memory location对内存位置的无效访问
【发布时间】:2013-05-10 00:05:21
【问题描述】:

我的代码是这样的:

WebBrowser browser = new WebBrowser();
browser.Width = 700;
browser.Height = 200;
**browser.Url = new Uri("about:blank");**
browser.DocumentText = mytext;

并且错误发生在突出显示的行中,即:

BadImageFormatException 未处理:对内存位置的访问无效。 (来自 HRESULT 的异常:0x800703E6)。

我在许多论坛中进行了搜索,并且已经将我的项目属性平台更改为任何 CPU。但它不起作用。

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 在导航之前将浏览器控件添加到表单中如何?此外,尝试在导航之前/之后插入“Application.DoEvents()”。
  • 听起来你的软件配置比你的代码更相关。操作系统和IE版本是多少?
  • @UweKeim 添加控件时发生相同的错误。 Invalid access to memory location
  • @Adriano 是的,我也认为这是一个配置问题,因为它在部署之前运行良好,并且在我再次运行该应用程序很多天后,我得到了这个错误......我的操作系统是 Win 7 它是Windows 应用程序..
  • 可以修改此属性的WidthHeight 但不能修改Url 属性是没有意义的。仅当 WebBrowser 尚未实际添加到表单时才有意义,因为当您尝试将可能是 null 的属性设置为尚不存在的控件时,可能会导致内存异常,例如这个。这不是系统配置问题WebBrowser 无论什么版本的 Windows(x86 或 x64)都一样。只是为了确认一下安装的是什么版本的 IE?

标签: c# winforms


【解决方案1】:

你可以试试这个:

WebBrowser webBrowser1 = new WebBrowser();
webBrowser1.Navigate("about:blank");
HtmlDocument objHtmlDoc = webBrowser1.Document;
objHtmlDoc.Write("<span style=\"font-size:10px\">TEXT </span>");
panel1.Controls.Add(webBrowser1);

这对我来说很好。

【讨论】:

  • 它不起作用,因为我还在运行时 PnlWebBrowser.Controls.Add(browser); 的 Panel 中添加 webbrowser 控件。
【解决方案2】:

BadImageFormatException 通常与位数有关 - 尝试更改产品构建的架构(x86、x64)以匹配您引用的 DLL。

【讨论】:

  • 是和不是。这是非托管世界中的东西,但即使使用 AnyCPU 编译,也可以使用 Web 控件。
  • @canhazbits - WebBrowser 包含在 System.Windows.Forms.dll 中,您的评论毫无意义。
  • @canhazbits 是的,Platform 设置为任何 CPU。
猜你喜欢
  • 2017-05-12
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
相关资源
最近更新 更多