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