1

我从文本文件中导入了一个 Form 对象。当我尝试编译它时,我收到以下错误消息:

此消息适用于 C/AL 程序员:
由“Microsoft Common Dialog Control 6.0 (SP3)”标识的 OLE 控件或自动化服务器。CommonDialog 需要设计时许可证。无法获得此许可证。确保使用适当的许可证正确安装了 OLE 控件或自动化服务器”

我正在使用开发人员许可证在 Dynamics NAV 中进行开发。OCX 已正确注册,在 NAV 的“自定义控件”中列为指向“C:\Windows\SysWOW64\comdlg32.ocx”。
为什么我不允许编译对象?

4

3 回答 3

1

正如您所说,所讨论的许可证纯粹是为了在设计时环境中使用 CommonDialog 组件。这与您的 NAV 许可证或您的客户能够运行使用该组件的代码无关。设计时许可证(只不过是系统注册表中的一个键;不是实际的许可证文件)用于安装 Microsoft Visual Basic 6.0 或更早版本的 Microsoft Visual Studio。

如果您可以访问 VB6.0 或 VS2005,则可以使用安装盘上的 VB6Controls.reg,如下所述:http: //support.microsoft.com/default.aspx ?scid=kb;en-us;318597 。

于 2012-08-22T04:34:33.870 回答
0

还有一个技巧可以解决这个问题,避免安装很多像 VB6.0 这样的垃圾。

此消息与您尝试编译的对象中的某些自动化类型变量有关。

您可以从其他数据库中的任何其他编译对象或同一数据库中的任何其他编译对象复制此变量。然后您导入的对象将神奇地编译。只需从导入对象的变量列表中删除变量,然后使用复制粘贴将其从编译对象中复制。

我不知道那是什么魔法,但它对我有用很多次。我在数据库的恢复备份中从同一对象复制了变量。

于 2013-10-02T07:04:11.350 回答
0

正如消息所说,组件加载,尝试获得许可证而不是获得许可证。因此,您没有它所说的,或者您在组件查看它的路径查找中没有它。

于 2012-08-21T13:53:09.720 回答