Search code examples
c++arrayscharwchar-t

how to convert char array to wchar_t array?


char cmd[40];
driver = FuncGetDrive(driver);
sprintf_s(cmd, "%c:\\test.exe", driver);

I cannot use cmd in

sei.lpFile = cmad;

so, how to convert char array to wchar_t array ?


Solution

  • From MSDN:

    #include <iostream>
    #include <stdlib.h>
    #include <string>
    
    using namespace std;
    using namespace System;
    
    int main()
    {
        char *orig = "Hello, World!";
        cout << orig << " (char *)" << endl;
    
        // Convert to a wchar_t*
        size_t origsize = strlen(orig) + 1;
        const size_t newsize = 100;
        size_t convertedChars = 0;
        wchar_t wcstring[newsize];
        mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
        wcscat_s(wcstring, L" (wchar_t *)");
        wcout << wcstring << endl;
    }