C#中调用C生成的Dll 问题
C#中调用C生成的Dll,总报程序发生异常错误..不懂为什么..
C的代码:
int Sum(int a,int b)
{
return a+b;
}
C#中调用的代码:
class Dll
{
[DllImport("EssDll.dll",EntryPoint="Sum",
CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern int Sum(int a,int b);
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Console.Write("Dll测试开始\n");
Console.Write(Sum(5,6).ToString());
Console.Write("\n前面调用Dll完成!\n");
string ok = Console.ReadLine();
}
}
C生成Dll是用Cywin来生成的,命令如下:
EssDll:
gcc -g -c ./src/EssDll.c -I./include -L./lib
dllwrap -o EssDll.dll EssDll.o --def ./src/EssDll.def
mv ./EssDll.o ./obj/
mv ./EssDll.dll ./bin/
*.def文件如下:
LIBRARY EssDll
EXPORTS
Sum