注册com dll以供vba使用

时间:2012-04-14 22:04:01

标签: visual-studio com

我有一个非常基本的问题。我开发了一个可以从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。 o.50727或Framework \ v4.0.30319注册dll。我不清楚有什么区别。使用的版本是由VS的开发版本还是由您编译的.NET版本决定的?一个用于32位而另一个用于64位吗?

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

提前感谢您的任何帮助。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您需要使用regsvr32注册您的COM dll,以便从VBA引用它。

答案 2 :(得分:-2)

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