Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 相同的代码,缺少qtintf70.dll_Delphi_Delphi 7 - Fatal编程技术网

Delphi 相同的代码,缺少qtintf70.dll

Delphi 相同的代码,缺少qtintf70.dll,delphi,delphi-7,Delphi,Delphi 7,编译一些旧代码后,我的应用程序将不再运行。新编译的exe文件将不会启动“因为您的计算机缺少qtintf70.dll” 奇怪的是:从完全相同的代码编译的旧exe文件运行得很好。这两个exe文件在同一个系统上测试,但在不同的Delphi安装上编译(两个Delphi 7都在VirtualBox上运行) 谷歌搜索时,有人建议“你不知何故引入了Clx。Clx应用程序需要QT库。在你的uses子句中寻找以Q开头的单位。”但同样,这是完全相同的代码。我查过了,什么也找不到 建议?在D7中,引用qintf70.

编译一些旧代码后,我的应用程序将不再运行。新编译的exe文件将不会启动“因为您的计算机缺少qtintf70.dll”

奇怪的是:从完全相同的代码编译的旧exe文件运行得很好。这两个exe文件在同一个系统上测试,但在不同的Delphi安装上编译(两个Delphi 7都在VirtualBox上运行)

谷歌搜索时,有人建议“你不知何故引入了Clx。Clx应用程序需要QT库。在你的uses子句中寻找以Q开头的单位。”但同样,这是完全相同的代码。我查过了,什么也找不到


建议?

在D7中,引用qintf70.dll的源代码单元只有QForms.Pas和Qt.Pas

所以,你需要做的是

  • 将这两个文件的所有实例及其对应的.DCU文件移动到项目搜索路径以外的位置。使用像SwiftSearch这样的实用程序来确保找到所有这些工具

  • 完成项目的完整构建


  • 构建应该在某个地方停止,抱怨编译器找不到这些单元中的一个或另一个。当时正在编译的源代码单元包含对其中一个或另一个的引用。

    (通常)可能会带来意外的代码。就像我说的:完全相同的代码。我还发现了一些旧的备份,只是为了检查相同的问题。由于某些原因,在此Delphi安装上编译将导致所述问题。错误的搜索路径可能会带来不同的文件集。在Delphi Lib目录中,您的问题安装与其他安装之间的DCU是否相同?项目搜索路径上的任何其他文件夹也一样?DCU没有理由不同。所有内容都来自同一个源(最新安装是在硬盘驱动器出现故障后通过备份完成的)。我不记得有什么更新。有没有办法告诉哪个组件或单元正在调用这个确切的DLL?使用十六进制编辑器,我在编译的exe中找到了对qtintf70.dll的引用,但没有其他线索。非常感谢!按照你的程序,我最终扔掉了一个我不用它也能轻松管理的旧单位。我仍然很困惑为什么这以前不是一个问题,但现在我很高兴我能解决它。谢谢@Jarle:这以前不是问题,因为路径或可执行文件文件夹中的某个地方有qtintf70.dll的副本。这是唯一可能的原因,一个可执行文件的副本可以工作,而另一个已编译可执行文件的副本不能工作,但由于找不到DLL而失败。如果问题发生在编译过程中,并且错误是关于丢失的.pas或.dcu文件,则可能是另一个问题,但这是关于未找到DLL的问题。谢谢大家。这是一个拥有数千用户的旧共享软件应用程序。从来都不是问题,而且这个DLL肯定不会随应用程序一起分发。搜索早期的exe文件时,找不到对qtintf70.dll的引用,该程序将在没有dll的系统上运行(我刚刚测试过)。导致问题的单元在其uses子句中有QDialogs。将其更改为对话框,一切正常。同样,我不知道为什么这以前不是个问题。希望这能在将来帮助其他人。@Jarle感谢您提供的信息。为了节省一些字节,我用Q前缀(soqmath)重新创建了一些标准库(比如Math)。然后我错把QDialogs放在了单位里,而不是对话框里。但QDialogs不是我的。这个程序的工作原理是一样的,所以很难找到坏的单元。