如何调用 GetAltMonthNames 来填充外国语言环境月份字符串的安全数组?
How to call GetAltMonthNames to fill a safe array of foreign locale month strings?
我看到了这个函数,想知道如何调用它。我可能想编写一个组件并将此函数导出到 COM 客户端,因此我想填充一个安全的字符串数组(其他自动化类型也可以)。所以我想利用 ATL smart class。这是我目前所拥有的,一个控制台应用程序。
#include "pch.h"
#include <iostream>
// in pch.h ...
//#include "windows.h"
//#include "comutil.h"
//#include "atlbase.h"
//#include <comdef.h>
//#include "atlsafe.h"
int main()
{
LCID germany(7);
LPOLESTR *rgp;
HRESULT hr;
hr=::GetAltMonthNames(germany, &rgp); // can't see results
if (hr != S_OK) return hr;
CComSafeArray<BSTR> months;
hr = ::GetAltMonthNames(germany,(LPOLESTR**) &months); //forced compile but no joy
if (hr != S_OK) return hr;
std::cout << "Hello World!\n";
}
您的第一个代码没有问题,但是没有定义德语的替代名称。尝试波兰语:
LPOLESTR* rgp;
if (SUCCEEDED(GetAltMonthNames(1045, &rgp)))
{
int i = 0;
while (rgp[i])
{
wprintf(L"%s\n", rgp[i++]);
}
}
Useful for Hijri, Polish and Russian alternate month names.
我看到了这个函数,想知道如何调用它。我可能想编写一个组件并将此函数导出到 COM 客户端,因此我想填充一个安全的字符串数组(其他自动化类型也可以)。所以我想利用 ATL smart class。这是我目前所拥有的,一个控制台应用程序。
#include "pch.h"
#include <iostream>
// in pch.h ...
//#include "windows.h"
//#include "comutil.h"
//#include "atlbase.h"
//#include <comdef.h>
//#include "atlsafe.h"
int main()
{
LCID germany(7);
LPOLESTR *rgp;
HRESULT hr;
hr=::GetAltMonthNames(germany, &rgp); // can't see results
if (hr != S_OK) return hr;
CComSafeArray<BSTR> months;
hr = ::GetAltMonthNames(germany,(LPOLESTR**) &months); //forced compile but no joy
if (hr != S_OK) return hr;
std::cout << "Hello World!\n";
}
您的第一个代码没有问题,但是没有定义德语的替代名称。尝试波兰语:
LPOLESTR* rgp;
if (SUCCEEDED(GetAltMonthNames(1045, &rgp)))
{
int i = 0;
while (rgp[i])
{
wprintf(L"%s\n", rgp[i++]);
}
}
Useful for Hijri, Polish and Russian alternate month names.