生成P/Invoke代码最简单的方法是什么?我是一名经验丰富的.Net程序员,但我这辈子还没有编译过C/C++程序。现在我有了这个C-dll、标题和文档(第3方,而不是WinAPI),我需要从中调用十种方法。我正在考虑使用PlatformInvoke。我找到了这三个工具来为我创建代码:可能Pinvoker的方法似乎与Interop助手和向导有些不同。Swig我刚刚检查过,这里没有问过这个问题。这些工具的优缺点是什么?鉴于我对C/C++知之甚少,生成P/Invoke代码的最佳=最简单和最安全的方法是什么?有关互操作示例,请参阅http://dotnetperls.com/dllimport-interop,有关详细信息,请参阅此MSDN文章。这本书的圣经是亚当内森的书。基本上,您需要确定要调用的DLL中的函数。这些都需要用extern来标记,让外界可以访问它们。下一步可能会比较棘手,那就是为该函数编写DllImport。这需要托管和非托管世界之间的映射。您将需要弄清楚如何将Cdll中的任何复杂数据结构编组到托管代码中。您应该检查DLL中是否存在任何类型的COM接口。首先确保您确实需要使用P/Invoke。SWIG最初用于包装C/C++代码以供脚本语言使用。它根据接口描述生成C#代码(参见教程)。如果P/Invoke是一个选项,我建议不要在C#中使用它。如果函数的签名很简单——即如果它们采用2个char*并返回一个int,则设置需要10分钟。唯一一次变得复杂和混乱的是关于pinvoke的圣经是AdamNathans-.NET和COM:完整的互操作性指南我同意其他海报-swig不是正确的做法上面是C#学习教程:最佳方式生成P/Invoke代码有什么简单的方法?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
