gpt4 book ai didi

c# - Lutz Roeder 的 HTML Writer 在 SaveHtml() 方法中只返回 2 个字符

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:36 33 4
gpt4 key购买 nike

我已经下载了 Lutz Roeder 的 Html Writer 以用于 .NET WinForms 应用程序,以避免 SO 上其他线程中提到的 IE 依赖性问题。

HtmlControl 类 SaveHtml() 方法似乎只返回前两个字符,然而,这(不足为奇)总是“

目前,我已经通过向 HtmlControl 类添加一个方法来实现变通方法,该方法只返回 Document 对象的内部 HTML。

public string HtmlBodyInnerHtml {
get { return this.site.Document.GetBody().GetInnerHTML(); }
}

这目前有效,但我想知道是否还有其他人遇到过类似问题。我很乐意继续使用该控件,但如果它存在一些我会一直遇到的固有问题,我宁愿现在就知道。

或者,我可能没有正确使用它 - SaveHtml() 不是调用以检索 HTML 源代码的适当方法吗?

最佳答案

所以,我想通了。 Lutz 的 HTML Writer 在 64 位模式下运行时表现不佳。我想你在编译时会像我一样瞄准“任何 CPU”。当从 64 位代码调用时,Writer 进行的某些 Windows API 调用无法按预期工作。这是由于指针大小的变化,卢茨显然没有防备。编译为目标 x86-only 可能是您可以接受的解决方案。如果不是,您可以更改 NativeMethods.cs 中 STATSTG 结构中的第一个结构成员:

[MarshalAs(UnmanagedType.I4)]
public int pwcsName;

更正确的是:

[MarshalAs(UnmanagedType.LPTStr)]
public string pwcsName;

SaveHtml() 的问题应该得到解决。我在 x64 模式下的 Writer.exe 应用程序中遇到了一些其他错误,因此请注意,如果您必须支持 x64,您可能必须追踪其他与 pInvoke 相关的错误。

关于c# - Lutz Roeder 的 HTML Writer 在 SaveHtml() 方法中只返回 2 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583120/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com