開發平台(Platform): (Ex: Win10, Linux, ...)
C語言
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Gcc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
N
問題(Question):
最近想利用指標寫dll修改程式
目標是想要主程式進行到一半進行數值修改
步驟:
1.編譯dll檔案,指令:gcc -shared -o change.dll change.c
#include <stdio.h>
#include <stdlib.h>
_declspec(dllexport) void change()
{
int *p = (int *)0x28ff2c;
*p = 500;
}
2.連結以及編譯主程式,指令:gcc -o target.exe target.c -L. -lchange
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int num = 0;
printf("%x\n", &num);
while(1)
{
num++;
printf("\n%d", num);
Sleep(6000);
}
return 0;
}
最後我的num並沒有被修改,請問是為甚麼呢@@