Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как правильно узнать имя папки, в которой


Автор: erslgoeirjh 25.7.2016, 16:01
Я создал проект MyProject1 . Каталог этого проекта находится в корневом каталоге диска C: , то есть C:\MyProject1 .
В своей программе я использовал класс CFileDialog для диалогов открытия и сохранения файлов. При этом для диалога чтения используется следующий код:

Код

CFileDialog  fileDialog(TRUE,NULL,L"*.txt");
if (fileDialog.DoModal()==IDOK)
{
    CStdioFile  mFile(fileDialog.GetPathName(),CFile::modeRead|CFile::typeText);
    mFile.ReadString(mText);
    // обработка строки mText;
    mFile.readString(mText);
    // обработка строки mText;
    //...
}



Для диалога записи я использовал следующий код:

Код

CFileDialog  fileDialog(FALSE,NULL,L"*.txt");
if (fileDialog.DoModal()==IDOK)
{
    CStdioFile  mFile(fileDialog.GetPathName(),CFile::modeCreate|CFile::modeWrite|CFile::typeText);
    // запись информации в файл mFile;
}



Когда я отлаживал свою программу, то соответствующие файлы чтения и записи помещал в каталог C:\MyProject1\MyProject1 -- потому что по умолчанию эти диалоги указывали эту директорию.

Но вот я создал Debug- и Release-версии моего проекта--то есть были созданы .exe-файлы Debug- и Release-версий.
И я копирую свой Release .exe-файл в другую директорию и даже на другой диск--и у меня почему-то в этих программах при открытии этих диалогов всё равно появляется директория C:\MyProject1\MyProject1 , а не текущая директория, в которой расположен .exe-файл.

Как сделать так, чтобы в моей программе в получившихся .exe-файлах при открытии диалогов чтения или записи файлов появлялась бы текущая директория (то есть та, в которой расположен .exe-файл), а не директория C:\MyProject1\MyProject1 ?

У меня стоит Visual C++ 2008 .

Автор: rudolfninja 25.7.2016, 17:17
Посмотрите функцию https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)