.net - 如何为 MSHTML v9 编译 .dll。我目前收到 100 多个 "MIDL 2035: constant expression expected"错误

标签 .net c++ internet-explorer mshtml midl

我是一名 .net 开发人员,我正在尝试为 MSHTML v9 编译 .tbl 和 .dll,以便在我的 .net 应用程序中使用。

我找到了以下构建 MSHTML v8 .dll 的说明:

start menu -> Windows SDK 7.1 Command Prompt 

cd c:\temp
midl "C:\Program Files (x86)\Microsoft SDKs\Internet Explorer\v8\include\mshtml.idl"
tlbimp mshtml.tlb /out:Microsoft.mshtml.dll /namespace:mshtml /asmversion:8.0

以上内容对 MSHTML v8 非常有用但是当我用 MSHTML v9 尝试同样的事情时尝试运行时出现数百个“错误 MIDL 2035:预期常量表达式”错误:

midl "C:\Program Files (x86)\Microsoft SDKs\Internet Explorer\v9\include\mshtml.idl"

关于为什么 MSHTML v9 无法构建的任何线索?我认为这一定是我的环境,我正在运行 Windows 7 64x Ultimate 并安装了 VS2010 Ultimate 并安装了 Windows SDK 7.1。我的 PATH 变量中有以下相关路径:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

非常感谢任何帮助,谢谢! :)

最佳答案

#include <mshtmdid.h>
#include <mshtmcid.h>
#include <olectl.h>

mshtml.idl 中的前几行。 mshtmdid.h 头文件定义常量。此文件也存在于 Windows SDK 包含文件夹中,但这是旧版本。您需要更正 INCLUDE 环境变量,以便它首先在 Internet Explorer\v9\include 目录中查找。使用 SET INCLUDE。

关于.net - 如何为 MSHTML v9 编译 .dll。我目前收到 100 多个 "MIDL 2035: constant expression expected"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6669475/

相关文章:

c++ - 使用 C++ 登录到 Windows 上的事件查看器

internet-explorer - HTML5 <video> 标签在 Internet Explorer 中不起作用

c# - Windows.Forms SplitContainer.SplitterWidth 不会在运行时保持设置

c# - EntityFramework 上下文中的 SaveChanges() 静默失败

c++ - 是否可以编写可以在 HPX 和 C++1x 线程之间切换的代码?

c++ - AutoHotkey_L 中是否有修改 DLL 调用功能的标准协议(protocol)?

Javascript window.location 被一次又一次调用 IE-8

html - IE6绝对定位

.net - 如何在配置管理器中保持最少的解决方案平台?

c# - CSV实际上是....分号分隔值...(AZERTY上的Excel导出)