.net之如何从 C# 使用 C++ 代码

davidwang456 阅读:14 2024-11-01 17:39:52 评论:0

我需要使用 this库(Interception)。它写在C++ .简而言之,它可以让您操纵来自键盘或鼠标的输入。 我需要做的是使用来自 C# 的一些调用.

我不确定该走哪条路。到目前为止,我已经读到你可以使用 Pinvoke使用 C++里面的代码 C# .

我有很多关于 PInvoke 的问题:
1)做Pinvoke库需要位于特定的系统路径中才能找到(例如 system32 )?

我读过得到正确的 PInvoke签名可能很难并且容易出错,而且因为我找不到任何 PInvoke Interception的签名在 PInvoke.net 中,
2) 这是否意味着我应该停止使用 PInvoke

我也看到了,但没有详细说明,在 Visual Studio 中,当您创建项目时,您可以创建一个 Visual C++->CLR->Class Library .
3) 我应该用它来构建一个程序集链接 Interception ?这个程序集可以在 C# 中使用吗? ?

无论如何,如果一个C#替代 Interception存在,我会改用它。

请您参考如下方法:

1) 不,如果库与可执行文件位于同一路径中,它就可以工作。

2) 您只能将 PInvoke 与 C 函数一起使用,而不是 C++ 对象。所以用PInvoke直接调用Interception库恐怕是不行的。

3) 您可以创建链接到拦截的 C++/CLI 库。但是您必须创建自己的 .NET 对象以将纯 C++ 对象包装在拦截中。

我建议您阅读一些有关使用 C++ 编写 CLR 代码的内容。在 C++/CLI 中制作 CLR 包装器可能是最简洁的方法。


标签:C#
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号