如何从c#应用程序运行c++二进制代码
How to run c++ binary code from c# application
我有一个来自c++应用程序的二进制数据。我想直接从我的c#应用程序中运行特定的二进制代码。
我从网上找到了这个函数:
static void MemExe(byte[] buffer)
{
Assembly asm = Assembly.Load(buffer);
if (asm.EntryPoint == null)
throw new ApplicationException("No entry point found!");
MethodInfo ePoint = asm.EntryPoint;
object ins = asm.CreateInstance(ePoint.Name);
ePoint.Invoke(ins, null);
}
它可以很好地与c#二进制代码,但如果我试图打开一个c++二进制代码,它崩溃。
这里的异常:
附加信息:无法加载文件或程序集'5154816字节加载测试,版本= 1.0.0.0,文化=中性,PublicKeyToken = null'或其依赖项之一。试图以不正确的格式加载程序。
我猜这是与标题有关的东西?我不是专家……
是否可能以与函数MemEx相同的方式运行c++二进制文件运行c#二进制文件?
谢谢。
Assembly.Load(...)
将只加载。net二进制文件。
如果你想访问。net以外的二进制API,你会想使用p/Invoke签名。
如果你想运行一个可执行文件,使用System.Diagnostics.Process.Start(...)
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 有根的二进制搜索树.保留与其父级的链接
- 多态二进制函数
- 正在读取二进制文件(is_open)
- visual在c++中将十进制数转换为二进制数
- C++十进制到二进制,如何转换
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 二进制搜索树叶数问题
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为什么二进制搜索在我的测试中不起作用
- 重载==不适用于二进制树
- 正在尝试重载二进制搜索树分配运算符
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 带有数组键C++的二进制映射
- 如何将二进制格式的 C++ 对象的 std::vector 保存到磁盘?
- 二进制数之和(使用C样式字符串)
- 如何从dicom文件中读取二进制数据
- 基于编译器选项的编译二进制路径