Stringtable / #define / GetPrivateProfileString()
-
Hallo,
habe folgendes Problem:
VS 6.0 / MFC - DialogfeldbasierendMöchte Variablen (z.B. TS_SCHNITTSTELLE) im gesamten Programm ein CSTRING (char) - Wert (z.B. "Data Link") zuweisen.
Bsp.:#define TS_SCHNITTSTELLE "Data Link" #define S_CAN_MODE "CAN-Mode" .....
Weise ich diese Werte allerdings mit "#define" zu, so kann ich diese dann nicht der Funktion
GetPrivateProfileString(TS_SCHNITTSTELLE,S_COM_AKTIV, false, (char*)Einstell->C_Bitfeld1.CAN_COM,30,Directory + "\\" + Dateiname + ".ini");
übergeben.
Übergebe ich der Funktion allerdings per Hand die CSTring-Werte (Data Link & CAN-Mode)
GetPrivateProfileString("Data Link","CAN-Mode", false, (char*)Einstell->C_Bitfeld1.CAN_COM,30,Directory + "\\" + Dateiname + ".ini");
funktioniert alles perfekt.
Wie kann ich das lösen? Über Stringtables vielleicht? Allerdings möchte ich den Aufruf über z.B. "TS_SCHNITTSTELLE" und nicht über irgendeine ID (z.B.105) etc. gestalten können.
Vielen Dank für Eure Hilfe. Bin echt bisschen planlos momentan.
Gruss
S.
-
Zunächst einmal definierst Du keine CStrings, sondern char*.
Bei Deinen defines ersetzt der Compiler lediglich die Angabe TS_SCHNITTSTELLE durch "Data Link". Das ist also völlig identisch. Ansonsten weicht der zweite Code vom ersten durch S_COM_AKTIV ab, definiert ist aber S_CAN_MODE als "CAN-Mode".
Liegts vielleicht daran?
-
Fehler beim Sprachwechsel......
Trotzdem Danke für die Hilfe.
Gruss
S.