C#从内存中运行C ++ EXE

时间:2015-12-07 10:58:44

标签: c# c++ .net memory execute

基本代码在这里:Load an EXE file and run it from memory

如果我像这样加载二进制文件:

FileStream fs = new FileStream(sFilename, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
br.Close();

运行功能正常。如果我使用上面的代码加载文件并在此之后删除sFilename,则代码将退出

if (!UnsafeNativeMethods.CreateProcess(sFilename/*null*/, hostProcess, IntPtr.Zero, IntPtr.Zero, false, UnsafeNativeMethods.CREATE_SUSPENDED, IntPtr.Zero, null, ref StartupInfo, PROCESS_INFO))

有没有人知道,为什么CreateProcess在文件系统中没有现有的sFilename时不能工作?

0 个答案:

没有答案