如何嵌入和运行.exe从c#或C/ c++
How to embed and run .exe from C# or C/C++
我有。exe文件(我多年前用c++创建的),我想从我的新程序。exe中运行这个。exe,这是用c#/c++(控制台应用程序)编写的。我可以嵌入旧的。exe到新的代码(c++/c#),并创建一个新的。exe,其中将包括旧的?
编辑:我可以从c++中运行:
system("path\to\exe");
或c#中的
Process.Start(path);
但是都使用path,我需要嵌入到新的。exe
首先将其作为资源嵌入到应用程序中。这样,就可以动态地访问它的二进制数据并将其加载到应用程序中,并且可以访问EAT (Export Address Table)来查找需要使用的函数。这种封送处理在c#中很困难,但您可以选择提取应用程序。我相信保持它的简单,这可能满足您的需要。
void ExtractAndRun(string assemblyResource)
{
var tempPath = Path.Combine(Environment.CurrentDirectory, "uapweaelsirx.exe");
var res = GetType().Assembly.GetManifestResourceStream(assemblyResource);
var fileBuffer = new byte[(int)stream.Length];
res.Read(fileBuffer, 0, fileBuffer.Length);
File.WriteAllBytes(tempPath, fileBuffer);
Process.Start(tempPath);
}
如果您的流程运行时间不是很长,或者您只是希望将其合并到您的用户中,那么这个解决方案可能是一个可以接受的选择。如果没有,评论,我将提供一个替代的解决方案与编辑。或者点赞,我会在新的答案中发布另一个解决方案。
相关文章:
- 嵌入方指针压缩已禁用
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 在静态库中嵌入类方法
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- Python中的for循环与C++有何不同
- 用Visual Studio在C++中嵌入Julia
- 是否可以为 QPixmap 派生类嵌入缩放方法?
- SetDlgItemInt 不会更改嵌入资源的编辑框
- 在C++中释放内存期间,迭代器与指针有何不同
- 我可以在具有一个标头和一个接口的 cpp 文件中有多个嵌入吗?
- 请求有关C++中嵌入 for 循环的帮助
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 在C++中嵌入 Mozilla 的 JavaScript 引擎
- 使用链表在 c++ 中堆栈嵌入
- 在 C++ 中嵌入 V8 会导致与 libcpp 相关的"unrecognized external symbol"错误
- 类中的 C++ int 被设置为值,似乎不知从何而来
- 嵌入 Python:对"_imp__Py_Initialize"的未定义引用
- -fvisibility-inline-hidden 与 gcc 中的 -fvisibility=hidden 有何不同
- 是否可以将不同的编译器嵌入到我的应用程序中?
- 错误,在嵌入在C++程序中的 python 脚本中使用 matplotlib 时