?
Hi. also hier der Code
Bei der erste Variante(Ordner wählen) funktioniert es, das Inifile zu schreiben:
// Funktion zum öffnen eines Dateipfades in der Ordnerstruktur (keine Dateianzeige)
void CKameraDlg::OnBrowse()
{ UpdateData(TRUE);
UpdateData(TRUE);
char strOrdner[_MAX_PATH] = "";
CString strFolderPath;
BROWSEINFO browseInfo = {0 };
browseInfo.pszDisplayName = strOrdner;
LPITEMIDLIST ret;
ret = SHBrowseForFolder(&browseInfo);
if (ret)
{
// OK selektiert
if (SHGetPathFromIDList(ret, strOrdner))
{
m_strProgrammPfad = strOrdner; // Pfad in der Membervariablen speichern
}
}
UpdateData(FALSE);
}
Nun die Dateivariante, bei der es komischerweise nicht klappt:
UpdateData(TRUE);
CString m_strPath;
CFileDialog m_ldFile (TRUE);
CString szFilter;
szFilter += "Exe Files (.exe)|.exe|";
szFilter += "All Files (.)|.|";
LPTSTR pch = szFilter.GetBuffer(0);
while ((pch = _tcschr(pch, '|')) != NULL)
*pch++ = '\0';
m_ldFile.m_ofn.lpstrTitle = "Bitte wählen sie die Datei aus";
m_ldFile.m_ofn.lpstrInitialDir = "C:\";
m_ldFile.m_ofn.lpstrDefExt = ".";
m_ldFile.m_ofn.lpstrFilter = szFilter;
if (m_ldFile.DoModal() == IDOK)
{
m_strProgrammPfad = m_ldFile.GetPathName(); //Dateipfad in die Membervariable schreiben
UpdateData(FALSE);
}
Mit dieser Funktion wird der Dateipfad übernommen
//------------------------------------------------------------------------------
// aktuellen Pfad in Inifile schreiben
//------------------------------------------------------------------------------void CKameraDlg::OnConfirm()
{
UpdateData(TRUE);
LPSTR temp_string;
temp_string = (LPSTR)calloc(200, sizeof(LPSTR));
sprintf(temp_string,"%s",m_strProgrammPfad );
WritePrivateProfileString ( "config", "path" , temp_string , ".\\configuration\\config.ini");
free(temp_string);
UpdateData(FALSE);
}