![]() |
C++ und WritePrivateProfileString was mach ich falsch?
Hi,
ich nutze WritePrivateProfileString um Einträge in eine ini Datei zu schreiben. Das Beispiel habe ich im Internet gefunden. Nur funktioniert das ganze nicht. Der Code lässt sich mit VS5 kompilieren. Weiss jemand was ich falsch mache? Zitat:
Rainer |
Re: C++ und WritePrivateProfileString was mach ich falsch?
Und was heißt jetzt: "Nur funktioniert das ganze nicht."
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Hi Luckie,
der Code wird anstandslos kompiliert. Nur mir fehlt ein Resultat wenn ich das laufen lasse. Egal ob in c:\ eine datei test.ini existiert oder nicht es passiert nichts. Kein Eintrag keine Fehlermeldung nichts. Grüsse rainer |
Re: C++ und WritePrivateProfileString was mach ich falsch?
Zitat:
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Panje debolschke dobischee....
Glaskugel einpack, WinXP Servicepack3, HP TFT schwarze Tatstatur Weiss nicht was das mit diesem Problem zu tun hat Grüsse Rainer |
Re: C++ und WritePrivateProfileString was mach ich falsch?
Zitat:
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Hi Bernhard,
das ist nicht das Problem. Hab winxp und mach das Gleiche mit Delphi, dort funktionierts. Grüsse rainer |
Re: C++ und WritePrivateProfileString was mach ich falsch?
Zitat:
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Zitat:
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Bei C++ wird ein WinAPI-Aufruf eigentlich so gemacht:
Code:
bzw
WritePrivateProfileString(TEXT("common"), TEXT("EinPfad"), TEXT("c:\\lol\\"), TEXT("c:\\test.ini"));
Code:
WritePrivateProfileString(_T("common"), _T("EinPfad"), _T("c:\\lol\\"), _T("c:\\test.ini"));
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Aber dann mit doppelten Backslashes, da diese sonst als Escape-Sequenz angesehen werden, oder?
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Nope, so passt es schon. :) Ich habs analog umgesetzt aus einem Beispiel von Microsoft. So stehts da auch. :)
Quark, du hast natürlich recht.... :wall: Ich könnte mir vorstellen, dass das vielleicht auch der Grund ist, warums gescheitert ist. Ich habe im Beispiel jetzt Doppelslashs gesetzt. |
Re: C++ und WritePrivateProfileString was mach ich falsch?
Hi alle,
es scheint zu funktionieren:
Delphi-Quellcode:
Ursache für das Ganze ist der \\ im Dateinamen. Ohne diese geht das Ganze schief.
extern "C" __declspec( dllexport ) int QtTestINI()
{ int r; //r = WritePrivateProfileString((WCHAR*)"test",(WCHAR*)"EinPfad",(WCHAR*)"huhu",(WCHAR*)"D:\\tester.ini"); r = WritePrivateProfileString(TEXT("common"), TEXT("EinPfad"), TEXT("huhu"), TEXT("c:\\test.ini")); return(r); } Bei der Variante mit (WCHAR*) legt er zwar das File an schreibt aber keinen Inhalt rein. Interssant ist, dass er bei beiden Varianten eine 1 zurück gibt. Das heisst also die Funktion meint alles korrekt gemacht zu haben. Grüsse Rainer |
Re: C++ und WritePrivateProfileString was mach ich falsch?
Hi alle,
könnte mir noch jemand erklären wie ich eine Variablenübergabe hinbekomme: extern "C" __declspec( dllexport ) int QtTestINI_write(char bla[255]) { int r; r = WritePrivateProfileString(bla, TEXT("EinPfad"), TEXT("huhu"), TEXT("c:\\test.ini")); return(r); } bla soll übergeben werden. Der Compiler meckert aber dass er den Datentyp nicht konvertieren kann. (Ich weiss dass ich eigentlich einen neuen Thread aufmachen müsste aber vielleicht weiss jemand die Antwort) Grüsse rainer |
Re: C++ und WritePrivateProfileString was mach ich falsch?
--- Drei Beiträge entfernt. Der persönliche Disput wird jetzt nicht zum fünften Male offen in der DP ausgetragen. --- :roll:
|
Re: C++ und WritePrivateProfileString was mach ich falsch?
Hi Daniel,
schliesse bitte diesen Thread. Ich habe das Problem in einen eigenen Thread ausgelagert. Grüsse Rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz