這是一個簡單的示例。從託管代碼性能調用本機代碼
CodeDLL.cpp文件:
extern "C" {
__declspec(dllexport) int __cdecl SimulateGameDLL (int a, int b) {
return a*b; // Calculation in native code
}
}
GameSharp.cs文件:
static class GameSharp
{
public static class UnsafeNativeMethods
{
const string _dllLocation = "CoreDLL.dll";
[DllImport(_dllLocation)]
public static extern int SimulateGameDLL(int a, int b);
}
}
或
static class GameSharp
{
public static class GameSharpClass
{
public static int SimulateGameDLL(int a, int b) {
return a*b; //Calculation in managed code
}
}
}
第一招:我有一個用C語言編寫一個dll文件++本機代碼,我嘗試在託管代碼中調用函數。(wrapper)
在第二個我已經將其轉換爲託管代碼。 我的代碼並不像這樣簡單。哪一個更好將我的C++本地代碼轉換爲託管或將其稱爲託管代碼。 哪一個更快?爲什麼?
如果這不明確,請告訴我,我會更多地討論它。不要在告訴我之前投票結束。 :)謝謝
我想你忘了提到這個問題 – Constantinius 2011-05-14 15:32:09
創建一個控制檯應用程序,將代碼包裝在一個秒錶中,在很多迭代中執行它並重復整個事情兩次。你得到了什麼? – 2011-05-14 15:32:42
這是他的帖子的底部......「爲什麼?哪一個更快?」 – gshauger 2011-05-14 15:32:50