2015-06-04 342 views
1

我試圖通過GetGeoInfo()獲取國家代碼(例如:「UK」或「SI」或「GER」)。C++獲取國家代碼

GEOID GetUserGeoID(GEOCLASS_NATION); 

目前從上面的功能所獲得的價值16 ^,但看在表中有沒有16號。

https://msdn.microsoft.com/en-us/library/windows/desktop/dd374073(v=vs.85).aspx

我知道這只是3-4行代碼,但我可以」我似乎自己弄明白了。任何幫助將被appriciated。

編輯:

GEOID myGEO = GetUserGeoID(GEOCLASS_NATION); 
int sizeOfBuffer = GetGeoInfo(myGEO, GEO_ISO2, NULL, 0, 0); 
WCHAR *buffer = new WCHAR[sizeOfBuffer]; 
int result = GetGeoInfo(myGEO, GEO_ISO2, buffer, sizeOfBuffer, 0); 

得到它顯示我的國家數目,但我不知道我是怎麼想將它轉換爲ISO代碼。

+1

發佈所有3-4行代碼? – Javia1492

+0

它給你'16'或'0x16'嗎? (這是巴哈馬btw) –

+0

@Thomas它給我16不是0x16。 – LenovoGlass

回答

1

要獲得國家ISO:

GEOID myGEO = GetUserGeoID(GEOCLASS_NATION); 
int sizeOfBuffer = GetGeoInfo(myGEO, GEO_ISO2, NULL, 0, 0); 
WCHAR *buffer = new WCHAR[sizeOfBuffer]; 
int result = GetGeoInfo(myGEO, GEO_ISO2, buffer, sizeOfBuffer, 0); 
wcout<<buffer; 

感謝@Christophe和@Thomas。