(windows.h) ofn.lpstrFile при преобразовании в char * это просто буква C - PullRequest
0 голосов
/ 29 октября 2019

Когда я пытаюсь записать путь, все, что я получаю, это файл с именем «C», и все, что находится там, это буква «C». В любом случае вот код

void OpenFile(HWND hwnd) 
{

    OPENFILENAME ofn;

    WCHAR file_name[100];

    ZeroMemory(&ofn, sizeof(OPENFILENAME));

    ofn.lStructSize = sizeof(OPENFILENAME);
    ofn.hwndOwner = Parent;
    ofn.lpstrFile = &file_name[0];
    ofn.lpstrFile[0] = '\0';
    ofn.nMaxFile = 100;
    ofn.lpstrFilter = L"All files\0*.*\0Nerdy Files\0*.CPP\0";
    ofn.nFilterIndex = 1;
    ofn.Flags = OFN_FILEMUSTEXIST;

    GetOpenFileName(&ofn);

    WriteFile((char*)ofn.lpstrFile);
    MessageBox(NULL, ofn.lpstrFile,L"", MB_OK);
}

   void WriteFile(char* path) 
   {

       FILE* pFile;
       fopen_s(&pFile,path,"w");

       if (pFile != NULL)
       {
           fputs(path, pFile);
           fclose(pFile);
       }
   }

1 Ответ

0 голосов
/ 29 октября 2019

Оказывается, есть эти функции для строк wchar_t *, которые решили мою проблему.

_wfopen_s и fputws

...