void* 64 bitlik bir tip. uintptr_t ise 32 bitlik bir integer. bu assignmentta tehlike var. eger 32 bitlik deger negatif ise assignment esnasinda void* olan degiskenin ust 32 biti negatifligi korumak icin 1'ler ile doldurulur. o zaman da pointer alakasiz bir yere bakmis olur.
iki cozum var:
1- compilerinda 64 bit portability problemlerini yakalama opsiyonu acik (/Wp64) eger hedef platformun 32 bit ise bu opsiyonu off yap
2- hedef platformun 64 bit ise uintptr_t'nin tanimlandigi yeri bul headerlarda. 64 bit icin #ifdef'in kontrol ettigi preprocessor sabitini include'lardan once #define et. #define _x64 falan gibi birsey olmali
ayrintili bilgi:
http://msdn2.microsoft.com/en-us/library/h97f4b9y.aspx
http://msdn2.microsoft.com/en-us/library/yt4xw8fh.aspx
[C++] Std::Vector ve OpenGL Soruları