2

我有一个非常基本的问题。我开发了一个可从 Access vba 使用的 com dll。在我的开发机器上运行良好。在测试机器上,我得到了

"error -2147024894 (80070002) Automation Error
System can't find the specified file"

当我运行 Access 应用程序时发出消息。

在设计视图中引用 dll 并且所有对象和属性都显示在 vba ide 中。

我想知道我是否使用错误的 regasm 来注册 dll?我使用 VS 2010 在 64 位机器上开发。

我编译 dll 以在 Framework 3.5 中的 x86 上运行。我应该使用框架 v2.2 吗?o.50727 或 Framework\v4.0.30319 注册 dll。我不清楚有什么区别。使用的版本是由VS的开发版本还是你编译的.NET版本决定的?一个用于 32 位,另一个用于 64 位?

我已经为此奋斗了 2 天,并取得了一些进展,但无法让 Access 例程在运行时实际设置 dll 的实例。

提前感谢您的任何帮助。

4

3 回答 3

1

如果你在 v3.5 下编译,你应该使用那个 regasm。但是,我认为您可能需要添加 /tlb 和 /codebase 开关来生成可以在 vba 应用程序中使用的类型库。然后你可以参考 .tlb 文件,你应该是金色的。

于 2012-04-14T22:24:26.990 回答
0

您需要注册您的 COM dllregsvr32用于从 VBA 引用它。

于 2012-04-14T22:25:34.253 回答
-2

VBA 使用 COM DLL。您必须使用 C++,而不是 .Net 框架。

于 2012-04-14T22:11:16.210 回答