c++ c#

Posted

技术标签:

【中文标题】c++ c#【英文标题】:appdomain 【发布时间】:2009-08-27 11:30:34 【问题描述】:

当我们写 汇编 asm = AppDomain.CurrentDomain.Load(SomeByteArray);

当 SomeByteArray 从 .net .exe 读取时一切正常,而从 c++ 读取时,错误。

因为这个功能在使用 .net exe 时很重要吗?

如果是,请以其他方式执行此操作。

谢谢

【问题讨论】:

当您说“C++”时,您是指 C++/CLI 吗?你得到的确切错误是什么? 无法加载文件或程序集“从 ConsoleApplication3 加载的 38400 字节,版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = null”或其依赖项之一。试图加载格式不正确的程序。 ConsoleApplication3 是我调用 AppDomain.CurrentDomain.Load(template) 方法的程序,谢谢 我认为这是不可能的:( AppDomain.CurrentDomain.Load(SomeByteArray); SomeByteArray 必须是 .net :( ,我是对的? 【参考方案1】:

调用程序集和您正在加载的程序集是同一类型的构建(x86、x64 或 AnyCpu)吗?您可以通过在 ILDASM 中查看构建来检查构建(查看清单,滚动到底部并查找标记)。

如果您自己构建了这两个程序集,那么只需检查项目的属性页以了解您是如何构建它的。

您必须确保它们相同,或者如果 .exe 是 AnyCpu,那么您正在加载的程序集必须与操作系统匹配。这意味着它必须是 32 位操作系统上的 x86 或 64 位操作系统上的 x64。

(这都是假设 SomeByteArray 是从文件中正确加载的)

【讨论】:

以上是关于c++ c#的主要内容,如果未能解决你的问题,请参考以下文章

C++与C的区别终于说清楚了!

c语言和c++和c#的区别

C语言和C++的区别

C vs C++?,C++基础教程之C++与C的区别

C/C++ C++调用用C库函数理解

c语言和c++有啥关系