How to convert char* to LPCWSTR?

Following Hans Passant’s advice regarding pointers to local variables, I worked out this approach, which seems to work well:

wchar_t *convertCharArrayToLPCWSTR(const char* charArray)
{
    wchar_t* wString=new wchar_t[4096];
    MultiByteToWideChar(CP_ACP, 0, charArray, -1, wString, 4096);
    return wString;
}

I’m aware that the use of new requires memory management, which I perform in the function that calls this one.

Leave a Comment