CString to char *
-
Hi,
ich habe folgende Funktionen:
int CStandard::getComputername(char *zielstring) { zielstring[0]='\0'; DWORD nnSize = UNLEN +1; if (!GetComputerName(zielstring, &nnSize)) { writeLine("Fehler!!! Konnte den Computernamen nicht ermitteln!"); return -1; } else { return 0; } }
Ich würde die Funktion gerne so nutzen:
BOOL CHilfeKopieDlg::OnInitDialog() { ... CString strAktRQ; getComputername(strAktRQ); ... return TRUE; }
Kann man statt einem ***char **** einen CString übergeben und wenn, dann wie?
Bin für jede Idee dankbar
Gruß
-
CString::GetBuffer(0)
-
Hi,
der Compiler meckert schon mal nicht.
Ich habe das mal bei 2 Funktionen versucht
1) CString strAktRQ; 2) CString strINIPath; 3) getComputername(strAktRQ.GetBuffer(0)); //int getComputername(char * zielstring); 4) getCurrDirectory(strINIPath.GetBuffer(0)); //int getCurrDirectory(char * zielstring); 5) strINIPath = strINIPath + "HilfeKopie.ini";
Keine Ahnung warum, aber bei der Ausgabe der CStrings scheint strAktRQ leer zu sein und strINIPath nur "HilfeKopie.ini" zu enthalten. Beim Debuggen steht nach der Zeile 4 in beiden CStrings das Ergebnis von getCurrDirectory() (z.B. "C:\HilfeKopie\Debug\")
Nach der Zeile 5 steht dann in strINIPath nur noch HilfeKopie.ini
-
Achso sorry, die 2. Funktion sieht so aus:
int CStandard::getCurrDirectory(char *zielstring) { char szBuffer[MAX_PATH+2]; char *pFilename; if(GetModuleFileName(NULL, szBuffer, MAX_PATH) > 0) { if(GetFullPathName(szBuffer, sizeof (szBuffer), zielstring, &pFilename) > 0) { zielstring[pFilename-zielstring] = '\0'; return 0; } else return -1; } else return -1; }