我有一個C++方法,它需要一個double類型的參數,例如如何將一個double值傳遞給使用DLLImport的C++參數?
extern "C" {
__declspec(dllexport) void __cdecl GetResult (double resultLine);
}
在C#的一面,我可以調用的方法,但它始終是結果行值轉換爲0。我打電話使用的DllImport的EXTERN功能的C++ DLL方法:
internal static class UnsafeNativeMethods
{
const string _dllLocation = "CoreDLL.dll";
[DllImport(_dllLocation)]
public static extern void GetResult(double resultLine);
}
我可以調用其他方法,採取字符串值和一切正常,但由於某種原因,它不起作用,當我通過雙值。
這是傳遞double值的正確方法嗎?還是我需要使用ref/out等?
請從.H文件中顯示確切的C++函數定義,以及C#程序中的整個DLLImport語句。 – 2011-04-05 21:48:53
完成上面,讓我知道如果它不清楚。 – InfoLearner 2011-04-05 21:52:51
很明顯。請參閱下面有關調用約定的答案。如果這不能解決問題,那麼代碼中的其他地方就會出現問題。您需要單步確定您傳遞的值是否爲零。 – 2011-04-05 22:42:08