gpt4 book ai didi

c++ - C++.Net 程序集可以轻松反编译吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:45 25 4
gpt4 key购买 nike

我知道所有程序集都可以通过某种方式反编译,但 C# 和 VB 应用程序最容易使用 (.Net Reflector) 等工具反编译为源代码。

所以我的问题是,如果我使用 C++ 使用 .Net 程序集和函数编写应用程序,是否可以像使用 .Net 反射器和此类工具的 C# 或 VB 应用程序一样轻松反编译它?好吧,如果我在不使用 .Net 框架的任何功能的情况下对其进行编程,并使 UI 仅调用 .Net 程序集,那么也很容易 decmpile 吗?

我的问题与这个类似:Could this C++ project be decompiled with such tools like a .NET Reflector?但没有人回答正确,所以有人可以帮助我吗?

我想使用 .Net 和 C++ 将我的应用程序编译成原生代码和托管代码!

最佳答案

没有“C++.Net”。有 C++/CLI,这是一种类似于 C++ 的语言,可用于将 native C++ 代码与 .NET 世界粘合在一起。您在其中编写的托管代码(引用类)将被编译为 MSIL。 “ native ”代码将编译为 MSIL 或 native 。如果你想将一些部分编译成你需要的本地代码

#pragma managed(push, off)

void foo() {}

#pragma managed(pop)

在您的来源中。 managed pragma可用于选择每个函数的编译目标。或者,您可以在每个模块不使用 /clr 标志的情况下进行编译,并将您的项目设置为生成混合模式程序集。

请注意,将 native 类型编码到 .NET 并返回可能会对您的应用程序产生严重的性能影响 - 每次您跨越 native 管理的边界时都会发生这种情况。但是这种嵌入式 native 代码和托管代码之间的互操作比普通的 p/invoke 快得多。

另见这个问题:C++CLI. Are native parts written in pure C++ but compiled in CLI as fast as pure native C++?

关于c++ - C++.Net 程序集可以轻松反编译吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com