我是一名 .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/