2014-01-16 33 views
0

我有一个类型库是在Visual C++中创建的,我试图在VBA中调用它的函数。我有两个文件:utility.dllutility.tlb。通过参考文献,我在VBA项目中引用了该库,并浏览至utility.tlb。但是,当我编译项目,我得到一个错误信息:试图使用类型库,但我得到一个文件未找到错误

File not found: utility.dll 

我都放在同一目录中有VBA项目的.XLSM文件都库文件。我想,也许这是一个DLL注册问题,所以我想上运行utility.dllregsvr32,并得到了以下错误消息:

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. 

我有机会获得源代码,文件的.sln等为C++项目创建了库文件。

接下来我应该做些什么来使我的VBA项目能够使用此类型库?

+0

改为使用c:\​​ windows \ syswow64 \ regsvr32.exe。 –

+0

@HansPassant,这给了我关于'可能不兼容'[原文如此]的相同回应。 – sigil

+0

在Visual Studio中转到解决方案属性,然后在Build选项卡上选择您的平台 - 如果它是一个用于64位办公室的64位类库,则选择“x64”作为平台目标而不是任何CPU – 2014-01-17 08:18:54

回答

0

问题是类型库的DLL搜索路径被硬编码到只存在于开发机器上的文件夹中。改变这个消除了错误。

相关问题