当前位置:  开发笔记 > 编程语言 > 正文

在C#中包装Visual C++

如何解决《在C#中包装VisualC++》经验,为你挑选了1个好方法。

我需要使用C++进行一些进程注入,但我更喜欢将C#用于除低级别之外的所有内容.我听说过"功能包装"和"编组",已经做了很多谷歌搜索,并在这里和那里找到了一些信息,但我仍然非常缺乏.

我按照有用的顺序阅读的内容;
http://msdn.microsoft.com/en-us/library/ms235281(VS.80).aspx
http://www.drdobbs.com/cpp/184401742
http://geeklit.blogspot.com/2006/08 /calling-c-lib-from-c.html

如何在C#中包装所有较低级别的东西(本机C++),这样我就可以用我更熟悉的语言C#轻松地命令这些函数?

非常感谢有关该主题的任何信息.



1> Arnout..:

我认为P/Invoke真的是最简单的方法:

非托管 C++中创建DLL ,包含执行注入所需的所有功能.

在C#代码中,声明一些static extern方法,并使用该DllImport属性将它们指向您的C++ DLL.有关详细信息,请参阅arul在其答案中提供的链接.

请注意,P/Invoke不限于"Windows API函数" - 您可以调用任何本机DLL公开的函数.

P/Invoke的一个潜在缺点是你必须为你的C++函数提供签名,可能会指定一些不太明显的编组.在这种情况下,您可以考虑构建COM服务器而不是"普通"DLL,并使用COM interop从C#调用您的代码.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有