我是C#的新人。
我有一个像这样的C文件(我用它来制作DLL文件):
extern "C"
{
typedef int (__stdcall * t_fun)(int);
__declspec(dllexport) int __stdcall ExecuteC(int n, t_fun f)
{
return f(n);
}
}
然后我想使用PInvoke在我的C#代码中使用它。
public delegate int f_delegate(int n);
[DllImport("ExecuteC.dll")]
public static extern int ExecuteC(int n, f_delegate func);
public static int FunCS(int n){ return n; }
static void Main(string[] args)
{
int x = ExecuteC(13, FunCS);
System.Console.WriteLine(x.ToString());
}
当我开始我的节目时,它立即结束。 这有什么问题?
答案 0 :(得分:2)
我没有试过运行你的程序,但你确定你不需要
System.Console.ReadLine()
最后调用停止控制台窗口立即消失?
答案 1 :(得分:0)
问题中的代码很好。您可以通过将其粘贴到全新的项目中并发现它完美运行来轻松验证这一点。
我能看到的唯一可信的解释是: