在C#中使用非托管代码(C)



我正在做一个项目,该项目结合了一个用C编写的非常大的开源项目(OSP),并试图用C#构建前端。我目前正在用Visual Studio 2012学习版编译OSP,并从该项目中生成所有.exe、.dll等。

我应该如何执行集成(请记住,我可以完全访问.h/.c文件)我尝试使用IJW(It Just Works)方法,但它似乎不允许我导入新编译的.dll的引用。除此之外,我不知道如何执行c#中的各种函数(除了向.exe发送命令行命令,我不希望这样做…)

我需要用IJW的特殊选项/参数编译OSP吗?还是需要重写代码?

对于用C编写的DLL,您需要用C#编写等效声明,而不是添加对该DLL的引用。

这被称为PInvoke

class ABC
{
    [DllImport("abc.dll")]
    public static extern int FuncX(int x, int y);
}

相关内容

  • 没有找到相关文章

最新更新