2
這是我的DLL導入語句:DLLImport(C代碼)C#試圖讀取或寫入受保護的內存。這通常是一個指示其他內存已損壞」
[DllImport("KaracellLib.dll", EntryPoint = "[email protected]", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, ExactSpelling = true)]
public static extern int karacell_bridge(int argumentCount, string[] argContent);
在本地C代碼的實際函數定義(其被轉換爲一個DLL):
int __stdcall karacell_bridge(int argumentCount, char ** argContent)
當我嘗試不止一次地在我的C#代碼中調用DLL時,出現上述錯誤。
我曾嘗試以下通過進入工具來解決該錯誤的模塊加載(NLY管理)
- 禁止JIT優化 - >調試 - >常規
- 增加裁判在C#DLL導入定義:
public static extern int karacell_bridge(int argumentCount, ref string[] argContent);
任何幫助表示讚賞!謝謝!
'int'不是函數定義。 (提示:注意格式化!) – 2012-10-16 05:47:26
char ** argContent - 顯示本地C調用此函數。聲明不足以編寫正確的代碼。 –
當您嘗試訪問C中的'argContent'或者當您從C#調用函數時,查看是否發生問題? –