Brett vorm Kopf mit char* und CString



  • Hallo,

    irgend etwas hab ich falsch bei folgender Anweisung, aber ich komm leider nicht drauf:

    char* CSwave;
    	CString test;
    	test.Format(":source:goto %4.4f",fStartW);
    	strcpy(CSwave,test);  // The variable 'CSwave' is being used without being defined.
    

    Hintergrund ist, das ich bei folgender Funktion:

    Send(imGPIB,MOPO,CSwave ,20L,NLend);
    

    nicht mit CString arbeiten kann.

    Ich weiß, dass das glaub ich simpel ist, aber siehe Überschrift 🙄



  • char* CSwave;  // <-- ein zeiger auf nen char, aber wohin zeigt er? 
    ..
    strcpy(CSwave,test); // CSwave zeigt irgendwo hin, aber sicher nicht auf einen gültigen speicherblock
    

    wie wärs mit nem new?



  • Hallo,

    Du meinst so:

    char *CSwave;
    	CSwave = new char;
    

    😕



  • Dort weo du schreibst das du nicht mit CString arbeiten kannst kannst du aber mit CString arbeiten.

    Schau dir mal die Methoden der Klasse an.



  • Hey ela. Lern bitte C++ bevor du dich mit MFC beschäftigst.



  • Hallo,

    @ Unix-Tom:

    Das hab ich probiert, da bekom ich immer die Meldung, das CString nicht in PVOID konvertiert werden kann.
    Die Methode ist so deklariert:

    extern void __stdcall Send          (int boardID, Addr4882_t addr, PVOID databuf, long datacnt, int eotMode);
    

    @ danke im voraus:
    Ich hab nicht umsonst die Überschrift gewählt.



  • nein, ich meinte

    char *CSwave= new char[test.GetLength()+1];
    


  • Hi Manu,

    mal so ins blaue reingeraten...

    Send(imGPIB,MOPO, test.GetBuffer(),20L,NLend); 
    test.ReleaseBuffer();
    

    😕 K.A.

    Greez 😃



  • @ CMatt:
    Danke es funzt.

    @muhkuh_dd:
    aber wircklich ins blaue Hinein.
    Sonst alles klar bei Dir?



  • @manu
    ... ich hatte meinen Morgenkaffee noch nicht ... 😃

    bei mir is alles bestens!
    Grüß den Großen von mir!


Log in to reply