C#运行C++;来自内存的EXE
基本代码如下: 如果我像这样加载二进制文件:C#运行C++;来自内存的EXE,c#,c++,.net,memory,execute,C#,C++,.net,Memory,Execute,基本代码如下: 如果我像这样加载二进制文件: FileStream fs = new FileStream(sFilename, FileMode.Open); BinaryReader br = new BinaryReader(fs); byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length)); fs.Close(); br.Close(); run函数工作正常。如果我用上面的代码加载文件,并在其后删除sFilename,代码将在 if (
FileStream fs = new FileStream(sFilename, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
br.Close();
run函数工作正常。如果我用上面的代码加载文件,并在其后删除sFilename,代码将在
if (!UnsafeNativeMethods.CreateProcess(sFilename/*null*/, hostProcess, IntPtr.Zero, IntPtr.Zero, false, UnsafeNativeMethods.CREATE_SUSPENDED, IntPtr.Zero, null, ref StartupInfo, PROCESS_INFO))
有没有人知道,为什么文件系统中没有现有的sFilename,CreateProcess就不能工作