基本代码在这里: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时不能工作?