首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从IDE中的System.DllNotFoundException代码调用VB6代码时,从VB6调用VB6

当从IDE中的System.DllNotFoundException代码调用VB6代码时,从VB6调用VB6
EN

Stack Overflow用户
提问于 2016-09-08 11:45:16
回答 1查看 219关注 0票数 1

这个问题是特定于通过VB6 IDE /调试器的托管代码调用本机代码的问题。(也许它适用于其他语言(如Delphi等)的调试,但我不确定。)

我们正在通过COM从C#调用VB6 DLL。C# DLL依赖于通过p/invoke调用编译DLL中的本机代码。

在VB6 IDE中运行时,对C#代码的调用将导致此异常:

代码语言:javascript
复制
System.DllNotFoundException: Unable to load DLL 'name_of_library': 
The specified module could not be found.

但是,如果我们运行编译的VB6代码,则不会发生此错误。所有本机代码DLL都位于已编译的C# DLL旁边。VB6代码为应用程序生成EXE。

为什么会发生此错误?

EN

回答 1

Stack Overflow用户

发布于 2016-09-08 11:45:37

问题似乎是本机代码DLL的位置。

当编译包括EXE在内的所有内容时,然后对所有DLL和EXE进行排序,以满足Windows用于查找DLL的搜索顺序。

但是,当在VB6 IDE中运行时,显然是-- IDE本身的位置--决定了在DLL搜索中使用的位置。

例如,在我的例子中,我必须在以下位置找到本机代码DLL:

C:\Program Files (x86)\Microsoft Visual Studio\VB98

当我这么做的时候,错误被解决了。这很尴尬,但可行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39390070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档