我试图安装第三方包,我得到一个编译错误:
[DCC Error] fiile/line : E2003 Undeclared identifier: 'Windows'
Run Code Online (Sandbox Code Playgroud)
这是指这一行:
wnd := Windows.GetFocus;
Run Code Online (Sandbox Code Playgroud)
很明显,我没有正确的单位范围 - 但我需要哪些(并且有一个通用的方法来找到我需要的使用条款)?
我现在有
Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;
Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;Winapi;System.Win
Run Code Online (Sandbox Code Playgroud)
[更新]
interface
uses
SysUtils, winapi.windows, Classes, Controls, ExtCtrls, Graphics, StdCtrls,
Dialogs, IniFiles, winapi.messages, Forms, Math
{$IFDEF DELPHI6_LVL}
, Variants
{$ENDIF}
;
Run Code Online (Sandbox Code Playgroud)
在强制部分没有用处.
[Upate]我忘了提.我(以同样的方式)在一台笔记本电脑上安装它失败了.然后我成功了一秒钟.麻烦的是我宁愿把它放在我的桌面上,在全新安装XE2启动器后我遇到了这些问题.
假设您的用户完全命名了 Windows 单元,则似乎是通过将该单元命名为 Winapi.Windows 来实现的。所以你的代码也必须这样做并写成
wnd := Winapi.Windows.GetFocus;
Run Code Online (Sandbox Code Playgroud)
当您通过命名完全作用域单元名称来使用单元时,还必须在该单元的后续代码中使用完全作用域名称。
现在,如果您想使用名称 Windows,则必须在使用子句中将单元命名为 Windows,并让单元别名设置完成其工作。如果您通过将其命名为 Windows 来导入该单元,那么您的原始代码将起作用。
非常明确地说:
uses
Winapi.Windows;
Run Code Online (Sandbox Code Playgroud)
是你现在拥有的,但你需要:
uses
Windows;
Run Code Online (Sandbox Code Playgroud)
以便编译您的代码。
| 归档时间: |
|
| 查看次数: |
2852 次 |
| 最近记录: |