首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Studio DllNotFoundException

Visual Studio DllNotFoundException
EN

Stack Overflow用户
提问于 2011-06-08 23:35:38
回答 1查看 318关注 0票数 0
代码语言:javascript
复制
    public const string LIB_GVC = "gvc.dll";
    public const string LIB_GRAPH = "graph.dll";
    public const int SUCCESS = 0;


    [DllImport(LIB_GVC)]
    public static extern IntPtr gvContext();

稍后,在main方法中,我调用gvContext(),它抛出DllNotFoundException。在我的项目中,我进入项目->属性并设置引用路径,这样我就有了一个名为"resources“的文件夹,其中包含我所有的DLL,包括gvc.dll。我本以为这会起作用,但它没有。我需要做什么呢?

注意:我不能像往常一样使用Add Reference,我意识到考虑到Graphviz不是一个C#库,这种行为是正常的。我在术语上也有点模糊,为什么它被称为“非托管DLL"?这似乎是因为它不是从C#代码编译而来的,但这是真的吗/不是全部?

我正在关注this tutorial,如果它有助于澄清任何事情的话。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-08 23:42:13

问题是可执行文件找不到可执行文件的路径。在你运行它之后,试着把它放到/bin文件夹中,看看它是如何工作的。如果是这样,您的资源文件夹可能是a)找不到,或者b)您在编译上有一个未正确设置的复制操作。

至于“什么是非托管的”,COM和本机组件的内存要么由库本身处理(在某些情况下始终是本机的,COM可能由运行时处理),要么由.NET以外的其他组件处理。由于它们不是.NET组件,因此无法管理内存使用。这就是它们被称为“非托管”的原因。

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

https://stackoverflow.com/questions/6281413

复制
相关文章

相似问题

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