众所周知,当我们启动CMD.exe时,它将出现一个控制台窗口,并以如下行开头:
Microsoft Windows [?? 6.1.7601]
???? (c) 2009 Microsoft Corporation????????
C:\Users\hey>
Run Code Online (Sandbox Code Playgroud)
但是当我在VS中创建一个Windows控制台项目时,我的代码如下:
int _tmain(int argc, _TCHAR* argv[])
{
auto h = LoadLibrary(__TEXT("cmd.exe"));
Sleep(99999);
}
Run Code Online (Sandbox Code Playgroud)
只是变成了一个黑色的窗户.没有出线!
正如我所料,我可以在我的进程中加载这个PE(Windows可执行格式)文件,所以我不必启动新的cmd.exe并将其stdIO重定向到启动cmd.exe的进程.(我知道带有exe的Loadlibrary)文件可以在调用进程中启动exe而不创建新进程)为什么Loadlibrary不工作?(它在控制台窗口中没有出现任何单词)