我正在开发一个项目,它结合了一个用C语言编写的非常大的开源项目(OSP),并试图在C#中构建一个前端。我目前正在使用Visual Studio 2012 Express编译OSP,并从该项目中生成所有.exe,.dll等。
我应该如何执行集成?(请记住,我可以完全访问.h / .c文件)我尝试使用IJW(It Just Works)方法,但它没有出现允许我导入我刚编译的.dll的引用。除此之外,我不知道如何在C#中执行各种功能(除了向.exe发送命令行命令,我不想这样做。)
我是否需要使用IJW的特殊选项/参数编译OSP,还是需要重写代码?
答案 0 :(得分:2)
对于用C编写的DLL,您需要在C#中编写等效声明,而不是添加对该DLL的引用。
这称为 PInvoke 。
class ABC
{
[DllImport("abc.dll")]
public static extern int FuncX(int x, int y);
}