I am trying to to create a Task Dialog, using the TASKDIALOGCONFIG
strucutre. My application uses Unicode. This is my code:
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);
I have researched the problem a bit, but I haven't found a solution yet. Could anybody help me?
You have two options:
TASKDIALOGCONFIGA
andTaskDialogIndirectA
.std::string
tostd::wstring
.I personally would recommend the latter option.
I would also recommend that you do not use
tchar.h
, and stop using_T(...)
. Since you are only targeting Unicode, you should writeL"Error"
rather than_T("Error")
. It only makes sense to usetchar.h
if you are writing code that must compile for both MBCS and Unicode targets. That was a necessary evil in the days when we needed to compile for Win 95/98 and Win NT/2000. But those days are long gone.