我们正在使用 Delphi XE5 将应用程序套件迁移到 64 位。在“关于”框中,我们显示 CPU 速度。我们当前使用的例程是 32 位汇编,因此无法在 64 位下编译。
有没有一种本地方法可以从 Delphi 64 位中检索 CPU 速度?
我们有一个在 Delphi 2006 中运行良好的大型应用程序。我们已将其移至 XE5,并且经常遇到零星的访问冲突。我们正在使用 VCL 表单和许多 DevExpress 和其他第三方组件。我们正在使用带有 Delphi XE Enterprise 版本 19.0.14356.6604 的 Windows 7 Professional。
在移植到 XE5 之后,我们在网上、这里和其他地方查看了有关 A/V 的帖子,但没有发现任何似乎与我们的问题相关的内容。
以下是我们对 A/V 的了解:
{$IFDEF CPUX86}asm 部分procedure Move(const Source; var Dest; Count: NativeInt);中。线路是FILD QWORD PTR [EAX] {Last 8}。我们猜测这个问题与我们的应用程序如何处理 Windows 7 内存管理有关,但我们不知道如何找出哪里出错了。附加了一个示例调用堆栈。
任何人都可以建议我们如何继续解决此问题?是否有第三方调试工具可以提供帮助?我们是否可以使用 Delphi IDE …
我编写了 2 个包:MEComps_DXE5 和 AMLComps_DXE5。后者取决于前者。两者都应该是多平台的:Win32、Win64 和(将来的)OSX。
当我打开第一个包 MEComps_DXE5 时,我可以编译、构建和安装它。我收到了一些警告,因为这个库包含的代码也必须在旧的 D5 上编译,但构建成功并在预期的地方创建了 dcu 和 dcp 文件。
当我打开第二个包 AMLComps_DXE5 时,发现这种情况:
"[dcc32 Fatal Error] MEComps_DXE5.dpk(52): F2063 Could not compile used unit 'MEClasses.pas'",其中MEClasses是MEComps_DXE5包的第一个单元。我已经尝试解决这个问题几天了,但无济于事。我在两个方面工作:
至于第一个问题,我一点头绪也没有。
至于第二个问题,在这种情况下,文档是没有用的。它解释了为什么不能编译一个使用过的单元是致命的,并指出原因是通过查看以前的错误来确定的。但在这种情况下,没有以前的错误。
由于 MEComps_DXE5 实际上是自行编译和构建的,我怀疑这与语法或代码有什么关系。编译器似乎无法找到编译这些单元所需的东西。
这两个包分别驻留在自己的目录中。我将 MEComps\Win32 dcu 目录放在库路径和浏览路径上。IDE 实际上在查找使用的单位时没有问题。
我还检查了 dcc32 命令行,似乎编译器知道所有涉及的目录。
我可以添加的其他信息:
我正在开发一个应用程序,在该应用程序中我需要能够编辑现有的 PDF 表单并以交互方式将 PDF 表单字段拖放到文件上。
表单字段,如下拉、文本、多行文本、单选按钮。目前我正在使用 ActiveX 控件在 Delphi 应用程序中打开 PDF 文件。
但是,我只能阅读 PDF 表单,但我希望能够像删除表单字段一样编辑它。
这个想法是在现有的 PDF 表单上添加表单表单并保存它。我尝试过 Gnostice、PowerPDF、quickPDF,但它们不允许交互式修改 PDF 文件,如 ADOBE。这个在线应用程序PDFEscape允许我们以交互方式创建新的和编辑现有的 PDF 表单。
在 Gnostic 中,我们可以以编程方式进行编辑,例如:
问题:
下面的代码在D10 Seattle上编译得很好,但是我安装了D10 的电脑坏了。然后我需要使用DXE5在我的项目中进行一个小的更新,但不编译,因为命令TJSONBool.Create(False)和JSONObj.ToJSON存在。
什么是等价的TJSONBool.Create(False),并JSONObj.ToJSONrespectivally上DXE5?
uses
Data.DBXJSON, SHFolder;
function GetSpecialFolderPath(folder : integer) : string;
const
SHGFP_TYPE_CURRENT = 0;
var
path: array [0..MAX_PATH] of char;
begin
if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then
Result := path
else
Result := '';
end;
procedure ChangeChromeSetting(const ATarget, Avalue: string);
var
specialfolder: integer;
pathchrome: String;
JSONObj, ObjIpp: TJSONObject;
JSONPair: TJSONPair;
OldValue: string;
begin
specialFolder := CSIDL_LOCAL_APPDATA;
pathchrome := GetSpecialFolderPath(specialFolder);
pathchrome := pathchrome + '\Google\Chrome\User Data\Local …Run Code Online (Sandbox Code Playgroud) 如何确定firemonkey应用程序中的位置服务是否开启/关闭?
我知道这篇文章:如何检查Android上是否有网络(Delphi XE5).我不确定这有助于我检测位置服务是打开还是关闭.
今天,我将XE5安装移植到了VMWare Windows 7 x86 OS上。我没有安装android SDK,而是通过网络驱动器映射从主机OS上现有的SDK中创建了一个。
VMWare OS上的网络驱动器S基本上是到主机OS的物理硬盘驱动器C的克隆(链接),因此路径应该可以。SDK已成功创建,但是在尝试编译时出现了一些(可能很多)链接器错误。
我也从S驱动器打开现有项目,几乎与以前在主机OS上进行的操作相同。我可以从VM C磁盘或相同的S磁盘位置运行示例项目,例如FlashLight,而没有链接器错误,因此我猜这是我项目中的东西。
谁能说出Rad XE5为什么有未定义的参考错误(E2597),我该如何绕过它呢?
错误日志如下:
[DCC Error] E2597 S:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: S:\Delphi\Android\BitStack\V0.2\Android\Debug\CameraComp.o: in function Cameracomp::TCameraComponentForm::btnStartCameraClick(System::DelphiObject<System::TObject>):C:\Delphi\Android\BitStack\V0.2/CameraComp.pas:139: error: undefined reference to 'System::_InstAddRef(System::DelphiObject<System::TObject>)'
S:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: S:\Delphi\Android\BitStack\V0.2\Android\Debug\CameraComp.o: in function Cameracomp::TCameraComponentForm::btnStartCameraClick(System::DelphiObject<System::TObject>):C:\Delphi\Android\BitStack\V0.2/CameraComp.pas:142: error: undefined reference to 'System::_InstClear(System::DelphiObject<System::TObject>&)'
S:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: S:\Delphi\Android\BitStack\V0.2\Android\Debug\CameraComp.o: in function Cameracomp::TCameraComponentForm::btnStartCameraClick(System::DelphiObject<System::TObject>):C:\Delphi\Android\BitStack\V0.2/CameraComp.pas:142: error: undefined reference to 'System::_InstClear(System::DelphiObject<System::TObject>&)'
S:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: S:\Delphi\Android\BitStack\V0.2\Android\Debug\CameraComp.o: in function Cameracomp::TCameraComponentForm::btnStopCameraClick(System::DelphiObject<System::TObject>):C:\Delphi\Android\BitStack\V0.2/CameraComp.pas:145: error: undefined reference to 'System::_InstAddRef(System::DelphiObject<System::TObject>)'
S:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: S:\Delphi\Android\BitStack\V0.2\Android\Debug\CameraComp.o: in function Cameracomp::TCameraComponentForm::btnStopCameraClick(System::DelphiObject<System::TObject>):C:\Delphi\Android\BitStack\V0.2/CameraComp.pas:148: error: undefined reference to 'System::_InstClear(System::DelphiObject<System::TObject>&)'
S:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: S:\Delphi\Android\BitStack\V0.2\Android\Debug\CameraComp.o: in function Cameracomp::TCameraComponentForm::btnStopCameraClick(System::DelphiObject<System::TObject>):C:\Delphi\Android\BitStack\V0.2/CameraComp.pas:148: error: undefined reference …Run Code Online (Sandbox Code Playgroud) 如何打开应用程序初始化的程序单元?我需要做出改变.
此外,除了显示的当前单位之外,是否还要搜索程序中的所有单位?Delphi 5有一个弹出窗口,允许您选择.
如果这已经在SO上访问了,请指出我,因为我似乎无法找到它.话说回来:
使用标准的delphi应用程序事件,以及移动应用程序生命周期事件处理,我试图找到读取和写入INI文件的最佳位置?
当我测试时,我创建了一个带有按钮的演示应用程序,该按钮递增计数变量并将其显示在显示消息中
procedure TfrmMain.Button1Click(Sender: TObject);
begin
inc(Count);
ShowMessage(IntToStr(Count));
end;
Run Code Online (Sandbox Code Playgroud)
在主要形式的OnCreate甚至,我读了inifile
procedure TfrmMain.FormCreate(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create( TPath.GetDocumentsPath + PathDelim + 'fortysixtozero.ini' );
try
Count := Ini.ReadInteger( 'Main', 'Count', 0 );
finally
Ini.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
现在,知道移动应用程序可以有不同的状态,我想知道编写ini文件的最佳位置在哪里?
我很好奇我可以在Delphi XE5中为Windows 8商店构建应用程序吗?
(你知道,看起来像瓷砖的那些.)
我搜索过Embarcadero的网站.它说明了这一点
您的应用程序将在具有Intel和Intel Atom硬件的Windows台式机和基于x86的平板电脑上运行,例如Microsoft Surface Professional,HP的Slate平板电脑,华硕等,以及来自Acer,Samsung等的基于AMD处理器的平板电脑.
从此描述中,似乎支持Windows应用商店应用.我对吗?
delphi ×10
delphi-xe5 ×10
android ×3
firemonkey ×2
64-bit ×1
dcc32 ×1
ide ×1
ios ×1
json ×1
pdf ×1
pdf-form ×1
unit-testing ×1
windows-7 ×1
windows-8 ×1