我有一個建立在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