C++.Net程序集可以很容易地反编译吗
Could C++.Net assemblies be decompiled easily?
我知道所有程序集都可以以某种方式反编译,但C#&VB应用程序最容易使用(.Net Reflector)等工具反编译成源代码。
因此,我的问题是,如果我用C++使用.Net程序集和函数编程一个应用程序,是否会很容易将其反编译为使用.Net反射器和此类工具的C#或VB应用程序?好吧,如果我在不使用.Net框架中的任何函数的情况下对其进行编程,并使UI只调用.Net程序集,那么去编译也会很容易吗?
我的问题与此类似:这个C++项目可以用.NET Reflector这样的工具反编译吗?但是没有人答对他,有人能帮我吗?
我想使用.Net和C++将我的应用程序编译成Native&托管代码!
没有"C++.Net"。有C++/CLI,这是一种类似C++的语言,可以用来将本机C++代码与.Net世界粘合在一起。您在其中编写的托管代码(ref类)将被编译为MSIL。"本机"代码将编译为MSIL或本机代码。如果你想把一些部分编译成本地代码,你需要
#pragma managed(push, off)
void foo() {}
#pragma managed(pop)
在您的来源中。托管杂注可用于为每个函数选择编译目标。或者,您可以在每个模块不使用/clr
标志的情况下进行编译,并将项目设置为生成混合模式程序集。
请注意,将本机类型封送至.NET并返回可能会对应用程序的性能造成严重影响,而且这种情况在每次跨越本机托管边界时都会发生。但是这种嵌入式本地代码和托管代码之间的互操作比普通的p/invoke快得多。
另请参阅此问题:C++CLI。本机部分是用纯C++编写的,但在CLI中编译的速度是否与纯本机C++一样快?
相关文章:
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- Red Hat:使用<atomic>编译很好,但链接器找不到__atomic_store_16;什么库?
- C++编译每次都很慢,即使我不更改源代码
- 给定一个无符号整数,很容易交换每个偶数位和奇数位。这可以推广到交换每个偶数和奇数n位吗?
- 如果我的源文件中使用常数,则如何使编译很好地停止
- EiffelStudio 编译错误:使用 'tempnam' 很危险,最好使用 'mkstemp'
- 编译我的C++代码需要很长时间
- 为什么"int & const" MSVC 编译得很好?
- 用"gcc -c"通关很好地编译一个C++程序。为什么?
- 如果在调试配置中编译,C++ hash_map.clear() 会很慢
- 编译为C 与C的GCC代码生成的很大差异
- Visual Studio C 枚举需要很长时间来编译
- C 很容易使用枚举进行标志和位操作
- 为什么互斥体和条件变量很容易复制
- C++.Net程序集可以很容易地反编译吗
- 指针问题(可能很容易)
- 我可以很容易地创建一个模板函数,它接受任意类型的任意容器并对其进行操作
- 结构体向量的问题:解约束迭代器(可能很容易)
- 2D数组内存泄漏-应该很容易,我觉得愚蠢