尝试使用类型库,但出现 File Not Found 错误

Posted

技术标签:

【中文标题】尝试使用类型库,但出现 File Not Found 错误【英文标题】:Trying to use type library but I get a File Not Found error 【发布时间】:2014-01-16 17:32:43 【问题描述】:

我有一个用 Visual C++ 创建的类型库,我试图在 VBA 中调用它的函数。我有两个文件:utility.dllutility.tlb。我通过转到参考并浏览到utility.tlb,在我的 VBA 项目中包含了对该库的引用。但是当我编译项目时,我收到一条错误消息:

File not found: utility.dll

我已将这两个库文件与具有 VBA 项目的 .xlsm 文件放在同一目录中。我想可能是 DLL 注册问题,所以我尝试在 utility.dll 上运行 regsvr32 并收到以下错误消息:

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 项目能够使用这个类型库?

【问题讨论】:

使用 c:\windows\syswow64\regsvr32.exe 代替。 @HansPassant,这给了我关于may not compatible [原文如此] 的相同回复。 在 Visual Studio 中转到解决方案属性并在“构建”选项卡上选择您的平台 - 如果它是用于 64 位办公室的 64 位类库,则选择 x64 作为平台目标而不是任何 CPU 【参考方案1】:

问题在于类型库将 DLL 搜索路径硬编码到仅存在于开发计算机上的文件夹中。改变它消除了错误。

【讨论】:

以上是关于尝试使用类型库,但出现 File Not Found 错误的主要内容,如果未能解决你的问题,请参考以下文章

DevTools failed to load source map: Could not load content for…System error: net::ERR_FILE_NOT_FOUN

DevTools failed to load source map: Could not load content for…System error: net::ERR_FILE_NOT_FOUN

springboot整合mybatis 异常 org.apache.ibatis.binding.BindingException: Invalid bound statement (not foun

[原]使用SevenZipSharp出现“Can not load 7-zip library or internal COM error! Message: DLL file does

怎样解决“symbol file could not be found”问题

安装了Grunt但没有工作 - 小牛队的“命令未找到”