我有一个非常基本的问题。我开发了一个可以从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的实例。
提前感谢您的任何帮助。
答案 0 :(得分:1)
如果您在v3.5下编译,则应该使用该regasm。但是,我认为您可能需要添加/ tlb和/ codebase开关以生成可在vba应用程序中使用的类型库。然后你可以引用.tlb文件,你应该是金色的。
答案 1 :(得分:0)
您需要使用regsvr32
注册您的COM dll,以便从VBA引用它。
答案 2 :(得分:-2)
VBA使用COM DLL。你必须使用C ++,而不是.Net框架。