1
#include <windows.h>
#include <winbase.h>
#include <stdio.h>
typedef void (*MYPROC)(LPTSTR);
int main()
{
HINSTANCE LibHandle;
MYPROC ProcAdd;
LibHandle = LoadLibrary("msvcrt.dll");
printf ("%#p\n", LibHandle);
ProcAdd = (MYPROC)GetProcAddress(LibHandle, "system");
printf ("%#p\n", ProcAdd);
(ProcAdd)("cmd.exe");
return 0;
}
上記のコードはcmd.exe
コマンドを呼び出して終了することになっていますが、無限ループが発生するのはなぜですか?なぜこの小さなプログラムが無限ループを引き起こしていますか?
0X77BE0000
0X77BF93C7
0X77BE0000
0X77BF93C7
0X77BE0000
0X77BF93C7
0X77BE0000
0X77BF93C7
0X77BE0000
0X77BF93C7
0X77BE0000
0X77BF93C7
0X77BE0000
0X77BF93C7
0X77BE0000
...
あなたはハングだけではなく、インラインループであると確信していますか?また、これは「システム」と呼ぶ非常に奇妙な方法です! – Skizz
それは私のために働く。あなたはあなたの問題を詳細に記述できますか? –
@Anton Semenov、@Skizz、私は上記の出力を貼り付けました。 –