2
所以我有一個用C++編寫的DLL,我在C#中使用它。問題是我在C++中使用函數指針,所以我做了一個委託。該漏洞程序的作品,但完成後,我得到一個消息框,說明ESP的價值沒有保存的功能。從C#調用C++ DLL ESP值
我的代碼: C++的DLL
typedef void (*FUNCTION_TYPE)(bool);
extern "C"
{
DLL void prim(int a, FUNCTION_TYPE myF)
{
if(a < 2)
{
myF(false);
return;
}
for (int i = 2; i < a; i++)
{
if (a % i == 0)
{
myF(false);
return;
}
}
myF(true);
}
};
我的C#代碼(調用DLL):
delegate void SOME_FUNCTION(bool isFine);
[DllImport("DLLs")]
private static extern void prim(int n, SOME_FUNCTION afisare);
static void afisare(bool isFine)
{
if (isFine == true)
Console.WriteLine("Da, e prim");
else
Console.WriteLine("Nu, nu e prim");
}
static void Main(string[] args)
{
SOME_FUNCTION myAfis = afisare;
prim(17, myAfis);
}
非常感謝!當我被允許時,我會接受你的答案:D – Thanatos