#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
...