【问题标题】:There are undeclared identifiers when I run a form that has TEmbeddedWB in it当我运行一个包含 TEmbeddedWB 的表单时,有未声明的标识符
【发布时间】:2012-02-29 20:04:51
【问题描述】:

我最近刚刚为 Delphi 2009 安装了 bsalsa 的嵌入式 Web 浏览器,我下载了 HERE 并按照它的安装说明进行了分步说明 HERE。但是在我在表单上添加了一个 TEmbeddedWB 之后,我得到了以下错误:

Build
[Pascal Error] EWBAcc.pas(319): E2003 Undeclared identifier: SID_IUniformResourceLocatorA'
[Pascal Error] EWBAcc.pas(327): E2003 Undeclared identifier: 'SID_IUniformResourceLocatorW'
[Pascal Error] EWBAcc.pas(555): E2003 Undeclared identifier: 'urldll'
[Pascal Error] EWBAcc.pas(586): E2003 Undeclared identifier: 'Shell32'
[Pascal Error] EWBAcc.pas(597): E2003 Undeclared identifier: 'HHCtrl'
[Pascal Error] EWBAcc.pas(649): E2003 Undeclared identifier: 'Free_Index'
[Pascal Error] EWBAcc.pas(666): E2003 Undeclared identifier: 'SHLockShared_Index'
[Pascal Error] EWBAcc.pas(683): E2003 Undeclared identifier: 'SHUnLockShared_Index'
[Pascal Error] EWBAcc.pas(700): E2003 Undeclared identifier: 'SHFreeShared_Index'
[Pascal Error] EWBAcc.pas(709): E2003 Undeclared identifier: 'UrlMonLib'
[Pascal Fatal Error] EwbCore.pas(48): F2063 Could not compile used unit 'EWBAcc.pas'

当我阅读了与我的问题相关的各种论坛时,他们总是提到在库路径上添加嵌入式 Web 浏览器包的源路径来解决这个问题。我已经检查过了,我确定我的图书馆路径上确实有上述路径。有什么建议么?我哪里出错了?

【问题讨论】:

    标签: delphi delphi-2009


    【解决方案1】:

    您的问题中引用的未声明标识符在 EmbeddedWB 附带的 IEConst 单元中声明。编译器找到了该单元,否则它会抱怨缺少单元。但它没有找到 IEConst.pas,否则它会看到那些标识符。确保如果您正在重新编译 EwbAcc.pas,那么您的系统其他地方没有任何杂散版本的 IEConst.dcu,可能来自较旧的 EmbeddedWB版本,或者来自为不相关项目配置的库路径。

    那些 EmbeddedWB 源文件和 EwbCore.pas 都分布在同一个目录中,它们应该保留在那里。如果您已将某些文件复制到您自己的项目目录中,请将它们删除并使用原始副本,或者制作库源目录的完整副本。

    【讨论】:

    • 非常感谢。事实证明,我的程序当前正在使用另一个 IEConst.pas。它来自另一个组件。我刚刚更改了它的文件名,现在它工作正常。 :)
    • 你确定它们不只是同一个文件的两个不同版本吗?
    • 是的。它们是两个完全不同的文件,因为我已经看到了它们内容的不同之处。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多