我有一个建立在C++/CLI和.NET中的.dll文件。因此,它针对.NET应用程序。 API是一组使用托管类型的包装器,因此它是NET本机。我已经导入.dll和添加的功能等:C#DLLImport for C++ 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)“。
为什么会发生此错误,我该如何解决?
我可以给它添加一个引用,但是当我尝试写入using指令时它不会显示,如果这是有道理的。 – david
这是因为您已将函数导出为本地C++。尝试把它们作为一个静态的托管类来代替。 – Krumelur
也使ref类公开,并把它放在一个名称空间。 – Simon