int calculate (int a , int b)
{
return a+b;
}
int main ()
{
return 0 ;
}
如您所知,EnumSystemLocales和EnumLocalesProc是两个用于回调任何函数的API。我想使用这些API,但msdn或任何地方都没有任何示例。在这里,我想使用这些API回调计算函数。
答案 0 :(得分:0)
以下是有关如何使用“EnumSystemLocales”的示例:
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
BOOL CALLBACK MyLocaleEnumProc(LPTSTR szLocaleString)
{
_tprintf(_T("%s\r\n"), szLocaleString);
return TRUE;
}
int _tmain()
{
EnumSystemLocales(&MyLocaleEnumProc, LCID_INSTALLED);
return 0;
}
如果您只想拥有区域设置列表,可以执行以下操作:
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <vector>
#include <string>
typedef std::vector<std::basic_string<TCHAR>> tLocales;
std::vector<std::basic_string<TCHAR>> g_locales;
BOOL CALLBACK MyLocaleEnumProc(LPTSTR szLocaleString)
{
g_locales.push_back(szLocaleString);
return TRUE;
}
int _tmain()
{
// Get all locales
EnumSystemLocales(&MyLocaleEnumProc, LCID_INSTALLED);
// Print out all locales
for(tLocales::const_iterator i=g_locales.begin(); i != g_locales.end(); i++)
{
_tprintf(_T("Locale: %s\r\n"), i->c_str());
}
return 0;
}