INI-Datei auslesen: Probleme !
-
Ich dachte, das ist so einfach.
Aber dann muss man ja Pointer angeben!Erstmal der Code:
char curDirectory[2000]; char indexpath[2000]; GetCurrentDirectory(2000, curDirectory); string inipath = curDirectory + "autostart.ini"; GetPrivateProfileString("launcher", "index", DEFAULTVALUE_MATCHES ,indexpath, 2000, inipath );Erstmal möchte ich den Pfad des Ordners ermitteln, in dem das Programm läuft.
Dann soll er im selbigen Ordner mit GetPrivateProfileString die dort abgelegte autostart.ini durchsuchen und mir den Wert für das Feld "index" zurückgeben.Aber leider macht mir da der Compiler einen Strich durch die Rechnung.

Hier die Fehler:
1>.\DFMFCLAUNCHERDlg.cpp(111) : error C2664: 'GetPrivateProfileStringW': Konvertierung des Parameters 1 von 'const char [7]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\DFMFCLAUNCHERDlg.cpp(112) : error C2664: 'GetPrivateProfileStringW': Konvertierung des Parameters 1 von 'const char [7]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>.\DFMFCLAUNCHERDlg.cpp(113) : error C2664: 'GetPrivateProfileStringW': Konvertierung des Parameters 1 von 'const char [4]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>DFMFCLAUNCHER.cppJa, ich bin noch neu darin. Und eigentlich nur ein Gelegenheitsbenutzer davon.
Ich danke euch für eure Hilfe und Unterstützung!
Mit freundlichen Grüßen!
Euer
Innocentus
-
Das alte Problem der falschen UNICODE-Einstellungen. Du übersetzt im UNICODE-Modus, da mußt du auch mit Unicode-Strings arbeiten.
(oder vereinfacht: ersetze die beiden 'char' am Anfang durch 'TCHAR', 'string' durch 'basic_string<TCHAR>' oder CString und schließ deine String-Literale in _T(...) ein)
-
Ich danke Dir.
Soweit geht alles - allerdings beschwert der Compiler sich über das "+"-Zeichen an dieser Stelle:CString inipath = curDirectory + _T("autostart.ini");Wie fasse ich diese beiden TChars als einen einzelnen CString zusammen?
Ich danke Dir für Deine Hilfe!

Mit freundlichen Grüßen!
Innocentus
-
Versuch mal
CString temp; temp.Format(_T("%s%s"), curDirectory ,_T("autostart.ini");
-
Es geht endlich!
Vielen Dank!Mit freundlichen Grüßen!
Innocentus