【问题标题】:C++ Get country codeC++ 获取国家代码
【发布时间】:2015-06-04 13:54:38
【问题描述】:

我正在尝试通过 GetGeoInfo() 获取国家/地区代码(例如:“UK”或“SI”或“GER”)。

    GEOID GetUserGeoID(GEOCLASS_NATION);

目前从上面的函数 ^ 得到值 16,但在表中没有数字 16。

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

我知道这只有 3-4 行代码,但我自己似乎无法弄清楚。任何帮助都会得到帮助。

编辑:

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 代码。

【问题讨论】:

  • 发布所有 3-4 行代码?
  • 它会给你16 还是0x16? (顺便说一句,巴哈马)
  • @Thomas 它给了我 16 而不是 0x16。
  • 嗯,这很奇怪,因为 GEOCLASS_NATION == 16
  • @Thomas 你知道我如何得到国家名称吗?我可以把它剪下来什么的。

标签: c++ visual-studio geolocation country


【解决方案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。

【讨论】:

  • 如果你想使用 WCHAR,我认为最后两行应该是WCHAR* buffer = new WCHAR[sizeOfBuffer]; int result = GetGeoInfoW(myGEO, GEO_ISO2, (LPWSTR)buffer, sizeOfBuffer, 0);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 2016-06-11
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多