我有一个在Visual C ++中创建的类型库,我正在尝试在VBA中调用它的函数。我有两个文件:utility.dll
和utility.tlb
。我通过转到参考文献并浏览到utility.tlb
,在我的VBA项目中包含了对库的引用。但是当我编译项目时,我收到一条错误消息:
File not found: utility.dll
我已将两个库文件放在与具有VBA项目的.xlsm文件相同的目录中。我想也许这是一个DLL注册问题,所以我尝试在regsvr32
上运行utility.dll
并收到以下错误消息:
The module "utility.dll" may not compatible with the version of Windows
that you're running. Check if the module is compatible with an x86 (32-bit)
or x64 (64-bit) version of regsvr32.exe.
我可以访问创建库文件的C ++项目的源代码,.sln文件等。
接下来我应该怎样做才能使我的VBA项目能够使用此类型库?
答案 0 :(得分:0)
问题是类型库将DLL搜索路径硬编码到仅存在于开发机器上的文件夹。改变这种情况消除了错误。