我用vc做了一个C语言编译器,现在已经能够编译程序了,并可以生成exe,运行我就是直接用函数打开exe做的,不过想hello world!这样只输出的程序运行时就闪了一下就没有了,我知道可以在程序里加入getch() system("pause"); 等语句,但我看vc的编译器不用加这样的语句,一样可以输出press any key to continue!,请问大家如何实现呢!谢谢各位了!!
调试欢乐多
gets(buf);
-------------------------
高人啊!太厉害了。
#include <stdio.h>
#include <conio.h>int main(int argc, char * argv[]) {
STARTUPINFO si = {0};
si.cb = sizeof(si);
PROCESS_INFORMATION pi = {0}; CreateProcess(NULL, "notepad.exe", NULL, NULL, TRUE , 0, NULL, 0, &si, &pi);
CloseHandle(pi.hThread); WaitForSingleObject(pi.hProcess, -1); int nExitCode = 0;
::GetExitCodeProcess(pi.hProcess, (LPDWORD)&nExitCode);
CloseHandle(pi.hProcess); printf("press any key to continue...\n"); _getch();
return nExitCode;
}
当然,实际的处理会稍微复杂一些,比如判断一下要执行的程序是不是GUI程序,如果是GUI程序就直接CreateProcess就完了,不必再press any key to continue了。谨慎怀疑lz不是用vc做了一个C语言编译器,只是用vc改了一个C语言编译器吧。有足够能力独立完成一个C编译器,我就不信连这点钻研精神都没有,最后被这个难住。