我試圖調用一個方法德爾福DLL具有以下簽名德爾菲法:調用的DLL從C#
function SMap4Ovr(const OverFileName : ShortString ;
const Aclay : Integer ;
const Acarbon : Double ;
out errstr : ShortString): WordBool;
我正在使用C#以下導入:
[DllImport("SMap.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
public static extern bool SMap4Ovr(
string OverFileName,
int Aclay,
double Acarbon,
out string errstr
);
但我得到一個AccessViolationException。
我似乎可以調用DLL中的幾個簡單的方法,它們具有字符串參數但不是整數或雙精度。
我也嘗試過CallingConvention = CallingConvention.Cdecl,但是這給了我同樣的錯誤。
感謝David對我很有幫助。 – Mike