C# 包装Visual C++;在C中# 我需要用C++做一些流程注入,但是我更喜欢用C来代替低级的东西。我听说过“函数包装”和“封送”,做过不少谷歌搜索,在这里和那里找到了一些信息,但我仍然非常缺乏

C# 包装Visual C++;在C中# 我需要用C++做一些流程注入,但是我更喜欢用C来代替低级的东西。我听说过“函数包装”和“封送”,做过不少谷歌搜索,在这里和那里找到了一些信息,但我仍然非常缺乏,c#,.net,c++,interop,reverse-engineering,C#,.net,C++,Interop,Reverse Engineering,我读过的东西按有用的顺序排列 我怎样才能用C#包装所有较低级别的东西(原生C++),这样我就可以用我更熟悉的语言C#轻松地掌握这些函数 关于这个主题的任何信息都是非常值得赞赏的。 < p>你想使用p/javek,看.< /p> < p>如果Pinvoking不是你想要做的,那么创建一个托管C++应用程序。使用本机C++进行进程注册表。使用托管C++创建对本机行为的.NET友好接口。然后可以从C#调用它。我认为p/Invoke确实是最简单的方法: 在非托管C++中创建一个DLL,包含所有需

我读过的东西按有用的顺序排列


我怎样才能用C#包装所有较低级别的东西(原生C++),这样我就可以用我更熟悉的语言C#轻松地掌握这些函数


关于这个主题的任何信息都是非常值得赞赏的。

< p>你想使用p/javek,看.< /p> < p>如果Pinvoking不是你想要做的,那么创建一个托管C++应用程序。使用本机C++进行进程注册表。使用托管C++创建对本机行为的.NET友好接口。然后可以从C#调用它。

我认为p/Invoke确实是最简单的方法:

  • 在非托管C++中创建一个DLL,包含所有需要注入的功能。
  • 在C代码中,声明一些<代码>静态外部> /Calp>方法,并使用<代码> dLimPult<代码>属性将它们指向C++的DLL。有关详细信息,请参阅中提供的链接
请注意,p/Invoke不限于“windows API函数”-您可以调用任何本机DLL公开的函数


潜在的下拉是,你必须为C++函数提供签名,可能指定一些不太明显的编组。在这种情况下,你可以考虑构造一个COM服务器而不是一个“普通”的DLL,并用C语言来调用你的代码。< /P>唯一的事情是我不想调用任何Windows API函数。我想注入第三方进程,并使用asm/etc通过本机C函数调用该进程中的某些函数,我可以从C#调用这些函数。也许我误解了这篇文章。谢谢