一个linux下的东西,用Cygwin编译成dll,然后连同cygwin1.dll一起放在c#项目里调用,是否可行?我试了一下://test.h
int Function (int a, int b);
//test.c
int Function (int a, int b)
{
return a + b;
}Cygwin下输入: gcc -shared test.c -o test.h -o test.dll 生成一个test.dll
public class abc
{
[DllImport("test.dll")]
public static extern int Function(int a, int b); static void Main(string[] args)
{
Console.WriteLine("Result:%d", Function(1, 1));
}
}
把test.dll和cygwin1.dll一起拷贝到Debug目录下运行无任何反应,点关闭出现程序无响应。
由于有个linux下用c写的东西,想在win下跑,是说c#无法调用Cygwin下生成的dll吗?
int Function (int a, int b);
//test.c
int Function (int a, int b)
{
return a + b;
}Cygwin下输入: gcc -shared test.c -o test.h -o test.dll 生成一个test.dll
public class abc
{
[DllImport("test.dll")]
public static extern int Function(int a, int b); static void Main(string[] args)
{
Console.WriteLine("Result:%d", Function(1, 1));
}
}
把test.dll和cygwin1.dll一起拷贝到Debug目录下运行无任何反应,点关闭出现程序无响应。
由于有个linux下用c写的东西,想在win下跑,是说c#无法调用Cygwin下生成的dll吗?
我想应该是吧,我用Viewdll.exe(DLL函数查看器)也能看到这个dll的导出函数名的。
cygwin有安装包,只拷cygwin1.dll估计是缺少一些依赖项吧,你安装后再试试.