Я пытаюсь создать диалог задач, используя TASKDIALOGCONFIG
strucutre. Мое приложение использует Unicode. Это мой код:
string error_text = get_error_text();
string error_code = get_error_code();
TASKDIALOGCONFIG tdc = { sizeof(TASKDIALOGCONFIG) };
tdc.dwCommonButtons = TDCBF_OK_BUTTON;
tdc.pszMainIcon = TD_ERROR_ICON;
tdc.pszWindowTitle = _T("Error");
tdc.pszContent = error_text.c_str(); /* of course this will give a
const char* instead of a wchar_t* */
tdc.pszExpandedInformation = error_code.c_str(); // here is the same thing
tdc.hwndParent = m_wndParent;
TaskDialogIndirect(&tdc, NULL, NULL, NULL);
Я немного исследовал проблему, но пока не нашел решения. Кто-нибудь может мне помочь?
У вас есть два варианта:
TASKDIALOGCONFIGA
а также TaskDialogIndirectA
,std::string
в std::wstring
,Я лично рекомендовал бы последний вариант.
Я бы также рекомендовал вам не использовать tchar.h
и прекратить использование _T(...)
, Так как вы ориентируетесь только на Unicode, вы должны написать L"Error"
скорее, чем _T("Error")
, Это имеет смысл использовать tchar.h
если вы пишете код, который должен компилироваться для целей MBCS и Unicode. Это было неизбежное зло во времена, когда нам нужно было скомпилировать для Win 95/98 и Win NT / 2000. Но эти дни давно прошли.
Других решений пока нет …