如何修复“无法加载 TClassName 的单元 UnitName 符号信息。您想尝试自己查找此文件吗?”

问题描述 投票:0回答:2

在delphi中,创建ActiveX控件曾经比现在更流行。然而,仍然可以使用 Delphi 创建 ActiveX 控件。这个问题假设Delphi 2007,但是无论你使用什么Delphi版本,它都应该是相同的。

在Delphi中创建ActiveX控件时会出现一些奇怪的错误。就我而言,我可以 现在不再导入我试图导入和包装的某个类,Delphi 不会再告诉我为什么,只是它无法加载单元“符号信息”。

在本例中,我正在包装一个开源控件,并且我最初几次尝试包装它效果很好,但我发现一旦发现以 ActiveX 包装器丢失的方式编写的属性,我就必须重做导入。重新生成 ActiveX 包装器比手动修复它更容易。直到你像这样冷下来:

 Error

 Could not load unit [unit] symbol information for [TClassName]. 
 Do you want to try to find this file yourself?

如果单击“是”,则会出现一个浏览(文件打开)对话框,并且文件过滤器设置为“DCU”。这意味着,它希望我找到该设备的 DCU 文件。无论我浏览还是不浏览,结果都是一样的。无论重新编译多少次都无法清除此错误情况。

有谁知道这个错误的真正含义,更好的是,如何解决它?谷歌搜索这个特定的错误消息显示它出现在英语以外的论坛中,但它是如此晦涩难懂,没有人记录它。

delphi activex
2个回答
2
投票

Delphi 中的库路径存在一个问题,为了使 ActiveX 控件向导正常工作,解析器解析相关单元所需的所有源都必须位于库路径中。由于 ActiveX 控件向导在您的项目之外运行,因此您的项目搜索路径不包含在用于解析要包装并转换为 ActiveX 控件的 VCL 控件源的文件夹列表中。

解决方案:

修复库路径。


0
投票

在运行 ActiveX 控件向导之前,我可以通过将自定义组件引用的所有单元添加到项目文件 (*.dpr) 来解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.