1. 程式人生 > 其它 >SDK環境下列印數字的方法

SDK環境下列印數字的方法

技術標籤:技術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的方法,可以更安全有效的進行記憶體寫操作