WritePrivateProfileString Fehler
-
Hallo
Also ich hab einen Fehler bekommen bei den Versuch in eine INI Datei zu schreiben. Ich weis jezt nich woran das liegt ich vermute aber es fehlt ein Header. Bloss welcher?
Hier mein Quellcode:#include <fstream> #include <iostream> using namespace std; int main() { WritePrivateProfileString("common","EinPfad","c:\\lol\\","test.ini"); WritePrivateProfileString("common","Nochwas","1","test.ini"); WritePrivateProfileString("bla","test","0","test.ini"); cout<<"Fertig\n"; cin.get(); }und die fehler meldung ist:
error C3861: "WritePrivateProfileString": Bezeichner wurde nicht gefunden.Hoffe man kan mir helfen.
-
also im Sample der MSDN stehen folgende Header mit drinnen:
// include files #include <stdio.h> #include <windows.h>einfach mal reinschauen ob in den Headern die Methode auftaucht.
-
Also ich habs mal getestet die fehler kommen immernoch muss man vileicht noch was mit den
using namespacemachen?
-
Poste noch mal Dein vollständigen Code...
Welche IDE? VC2005? Dann solltest Du auch TCHAR verwenden und das _T oder TEXT makro!
-
Also der Code:
#include <fstream> #include "stdafx.h" #include <iostream> #include <stdio.h> #include <windows.h> using namespace std; int main() { WritePrivateProfileString("common","EinPfad","c:\\lol\\","test.ini"); WritePrivateProfileString("common","Nochwas","1","test.ini"); WritePrivateProfileString("bla","test","0","test.ini"); cout<<"Fertig\n"; cin.get(); }Ich benutze VC++ 2005 Express
Dann solltest Du auch TCHAR verwenden und das _T oder TEXT makro!
Und ledier blick ich net was du damit meinst.
-
Erstens: Für WritePrivateProfileString benötigst du den Header <windows.h> (das steht aber in der MSDN bei jeder Funktion dabei).
Zweitens:
Dercodiminator schrieb:
Ich benutze VC++ 2005 Express
Dann solltest Du auch TCHAR verwenden und das _T oder TEXT makro!
Und ledier blick ich net was du damit meinst.
Such mal im Magazin nach dem Thema UNICODE, da dürftest du auch einige Erklärungen dazu finden (Kurzfassung: ASCII-Modus verwendet char, UNICODE-Modus wchar_t - zur leichteren Umschaltung gibt es TCHAR und Familie, das je nach Bedarf als char oder wchar_t definiert ist (LPCTSTR = const TCHAR* gehört auch dazu ;)))
-
Ok nun hats geklapt.
Nun hab ich noch das problem das ich das mit den LPCTSTR nicht hinbekomme, kanst du vileicht mal sen code posten? Also wie ich das z.b. "common" machen muss.
-
Wie Jochen schon gesagt hat - alle deine String mit dem _T Makro "vorbehandeln":
WritePrivateProfileString(_T("common"),_T("EinPfad"),_T("c:\\lol\\"),_T("test.ini"));
-
Achso ok danke ich probirs mal.
-
Also hat geklapt. Bloss wie macht man das bei int? bei den Labeln kan man die ja einfach mit Convert::ToString machen aber das get hier nicht. Und beim googeln hab ich auch nix gefunden.
-
Dercodiminator schrieb:
Convert::ToString
Wo kommt denn jetzt auf einmal das "Convert::ToString" her???
Du bringst hier C++/CLI und C++ etwas durcheinander! Das ist nicht gut... und gleich gar nicht zum lernen!
-
Das war ja nur als Beispiel für ne umwandlung gemeint. aber könt ihr mir vileicht mal sagen wie man int in LPCTSTR umwandeln kann?
-
LPCTSTR ist ein Zeiger auf TCHAR. Du Könntest also einen TCHAR array nehmen und atoi bzw. die TCHAR Varainat everwenden (siehe MSDN).
CString::Format tut es natürlich auch weil CString eine eingebaute Umwandlung auf const * TCHAR (LPCTSTR) hat.