CString in char*
-
Hallo zusammen,
hab mal wieder ein Problem!
Ich möchte den Wert aus einer CString Variablen (ausgabe) an ein char* buffer übergeben und anschliessend in eine Massagebox ausgeben!
Bis jetzt bin ich soweit gekommen, dass er es zwar kompiliert, allerdings nicht ausgibt!
Kann mir einer sagen was falsch ist? Er gibt mir nur irgendwelche Sonderzeichen aus! Liegt es daran, dass ich mit void gar keinen Wert übergeben kann?extern "C" __declspec(dllexport) void CdwDLLGet(long id, long* buflen, char* buffer) { //Benötigtes Makro zur anzeige des Dialogs AFX_MANAGE_STATE(AfxGetStaticModuleState()); //CDialog dlg(IDD_DIALOG1,CWnd::GetActiveWindow()); //dlg.DoModal(); //Dialog wird angezeigt //Soll die Funktion in der dialogdll.cpp aufrufen Cdialogdll dlg; CString ausdatum; if(dlg.DoModal()==IDOK) { ausdatum = dlg.ausgabe; buffer = ausdatum.GetBuffer(); strcpy(buffer, ausdatum); } return; }
Danke und sorry für die vielen Fragen!!!
Gruß Elle
-
Probiere es mit folgendem Codefragment:
char *psz = "Hallo"; CString str(psz); AfxMessageBox(str);
-
Schreibe mal unter
strcpy(buffer, ausdatum);
ein
TRACE0(buffer);
oder
AfxMessageBox(buffer);
Ich vermute das er in der funktion dir den Wert in den Buffer setzt, aber nach beendigung der funktion nicht übernimmt...
-
Hallo,
ich hab was anderes entdeckt und es funzt!
long l = 17; memcpy(buffer, dlg.ausgabe, l ); // copy the data itsef // 1. buffer ist das char* 2. Variable mit dem Datum
Trotzdem danke und bis bald!
Gruss Elle