Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » GetPrivateProfileString und variable Pfade

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
15.06.2004, 20:13 Uhr
alwin



Hallo mein Name ist Alwin und eigentlich programmiere ich nur in Delphi (bitte nicht gleich lachen), muss jetzt aber an einem bestehen c++ Programm was ändern.

Auf der Suche nach der Lösung bin ich auf GetPrivateProfileString gestossen.

Im Prinzip ist GetPrivateProfileString genau das was ich suche, allerdings habe ich das Problem, dass ich nicht mit festen Pfaden arbeiten kann. Ich weiß nie wo das Programm installiert wird.

Im Moment sieht es so bei mir aus


Code:
GetPrivateProfileString( "Defaults",
                             "Katalog",
                             "katalog.pdf",
                             temp,
                             99,
                             "pl.ini");



Nun meine Frage (endlich !!!)
Wie kann ich mir den aktuellen Pfad zu meiner EXE ermitteln und in GetPrivateProfileString einbinden.

Für eure Hilfe bin ich dir unändlich dankbar.

Alwin

Alwin@web.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.06.2004, 22:12 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
warum sollen wir lachen? Seit wann lacht man aus Mitleid?

folgendes Beispiel holt dir den Exe-Pfad:


C++:
  char ch_filename[_MAX_PATH], ch_pathname[_MAX_PATH];
  GetModuleFileName(NULL, ch_filename, _MAX_PATH);
  lstrcpy(ch_pathname, ch_filename);
  *(_tcsrchr(ch_pathname, __TEXT('\\'))+1) = 0;



dann steht in ch_pathname z.b

c: \ordner\

drin wenn deine exe den pfad

c: \ordner\deine.exe

hat
--
class God : public ChuckNorris { };

Dieser Post wurde am 15.06.2004 um 22:12 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.06.2004, 11:53 Uhr
alwin



Hallo Flohsoft(Team),

vielen Dank für die schnelle Unterstützung. Leider scheitere ich aber immer noch an den Wirren von C++ . Im Moment sieht das bei mir so aus:


C++:

//---------------------------------------------------------------------------
void __fastcall TfrmPartList::ShowCatalog(void)
{
   char ch_filename[_MAX_PATH], ch_pathname[_MAX_PATH];
   char temp[999];

   pnlCatData->Width = ocxPrevWidth ? ocxPrevWidth : (pnlMain->Width/3);

   // OCX erzeugen und PDF Katalog laden
   if(!ocxPDFView)
   {
      try
      {

  GetModuleFileName(NULL, ch_filename, _MAX_PATH);
  lstrcpy(ch_pathname, ch_filename);
  *(_tcsrchr(ch_pathname, __TEXT('\\'))+1) = 0;

        GetPrivateProfileString( "Defaults",
                             "Katalog",
                             "katalog.pdf",
                             temp,
                             99,
                             ch_pathname + "pl.ini");

//---------------------------------------------------------------------------




Vom Compiler kommt dann folgende Meldung:

[C++ Error] frmPartList1.cpp(620): E2085 Invalid pointer addition

Kannst du/ihr mir noch erklären wie ich meinen Ini-Namen mit ?ch_pathname? verknüpfen kann ohne das der Compiler sich beschwert???

Bitte hilft einem ?verzweifelten? DELPHI-Opfer. Ich gelobe auch Besserung und werde mich bei passender Gelegenheit in die tiefen Abgründe der C++-Programmierung begeben.

Oder denkt ihr auch ICH sollte das besser sein lassen????

So oder So.... Danke für die Hilfe

Alwin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.06.2004, 12:23 Uhr
Tommix



Hallo,

Zitat:

ch_pathname + "pl.ini";


man kann in C strings (die eigentlich nur arrays of char sind) nicht "addieren". Dafür brauchst Du entweder die Funktion strcat oder Du nimmst C++-strings (std::string), oder, falls Du die MFC benutzt, CString. Ich denke mal wenn Du hier im Forum nach "strcat" suchst, wirst Du fündig. Dein Problem hat vermutlich jeder, der von einer anderen Programmiersprache kommt.

Gruss, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.06.2004, 12:19 Uhr
alwin



Danke Danke Danke!!!!!

Ja, das war es!!! Und wie immer wenn man(n) es weis, natürlich auch sehr einfach.

Danke noch mal an alle die geholfen haben.

Alwin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: