SDK環境下列印數字的方法
阿新 • • 發佈:2020-12-09
技術標籤:技術visual studio
今天查了下SDK程式設計發現,網上很多寫法上不夠規範,有些程式碼都會有一些錯誤,以下為我目前發現的可以直接執行的程式碼。
設x為一個int型,需要將數字打印出來,這時有些函式在WIN SDK的環境下就不能使用,需要將程式碼規範化為。
#include<tchar.h>
int x;
x = 50;
TCHAR *szBuffer = new TCHAR[100];
wsprintf(szBuffer, _T("%d"), x);//應用
MessageBox(NULL, szBuffer, NULL , MB_OK);
注意到其中的寫法,如果有錯誤的話,寫法上有問題,注意必須分配記憶體空間,否則不能輸出。
另外,補充一個直接修改記憶體中的數值的方法。這個方法很強大,一般情況下用低階簡單方式可以直接寫記憶體,但是有些情況下會使程式直接閃退。因此需要用更高階的處理方法。下面給出一種可行的處理方法:
DWORD dwAddr = 1149972203;
//高階直接讀寫記憶體方式
WriteProcessMemory(GetCurrentProcess(), UIntToPtr(0x402372), &dwAddr, sizeof dwAddr, NULL);
` //最低階的讀寫記憶體的方式
//*(uintptr_t*)(Offset) = 1149972203;``
用WriteProcessMemory的方法,可以更安全有效的進行記憶體寫操作