gpt4 book ai didi

C# DLLImport for C++ dll

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:32 27 4
gpt4 key购买 nike

我有一个用 C++/CLI 和 .NET 构建的 .dll。因此,它针对 .NET 应用程序。 API 是一组使用托管类型的包装器,因此它是 NET 原生的。我导入了 .dll 并添加了如下函数:

[DllImport(@"maplib.dll")]
public static extern bool initialize(string a);

当我在我的 C# 代码中调用这个函数时,它工作正常,但如果我想添加另一个函数,比如..

[DllImport(@"maplib.dll")]
public static extern bool initialize(string a);
public static extern bool runfile(string a, string b);

当我运行我的程序时出现这个错误。它与第二个功能有关:

“无法从程序集‘myapp,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null’加载类型‘myapp.main’,因为方法‘runfile’没有实现(无 RVA)。”

为什么会出现此错误,我该如何解决?

最佳答案

如果需要两个函数,必须添加两次 DllImport 属性:

[DllImport(@"maplib.dll")]
public static extern bool initialize(string a);
[DllImport(@"maplib.dll")]
public static extern bool runfile(string a, string b);

但是,如果您的 dll 是 .NET,那么为什么不直接添加对它的常规引用并像使用 C# 代码一样使用它呢?

关于C# DLLImport for C++ dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200157/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com