-1
私は、マネージドC++ DLL(MecDll)をx86からx64に移植します。 C#で テストコード:TEST.DLLでC#からx64 C++ DLLを呼び出すと、プロセスがハングする(更新)
[DllImport("test.dll"), System.Security.SuppressUnmanagedCodeSecurity]
public static extern int getseven();
[DllImport("MecDll.dll"), System.Security.SuppressUnmanagedCodeSecurity]
public static extern int getsevenmec();
Console.WriteLine("{0}" , getseven());
Console.WriteLine("{0}" , getsevenmec());
コード:
extern "C"
{
__declspec(dllexport) int __stdcall getseven() {
return 7;
}
}
コードMecDll.dllに追加:
extern "C"
{
__declspec(dllexport) int __stdcall getsevenmec() {
return 8;
}
}
私がテストを実行すると、私は7を得ますtest.dllから印刷され、プロセスは黒いウィンドウでハングするだけです。 プロセスエクスプローラで、dllがロードされているのがわかります。
テストC#コードは任意のCPUでコンパイルされ、DLLはx64でコンパイルされます。
アイデア?
デバッガで実行しようとしましたか? – Ben
私は、同じことが起こった、私は関数呼び出しでブレークポイントを置く、それは、ブレーク、私はF11を押して、何もなし –
更新、DLLをC++コードから呼び出そうとしました。 –