GetWindowText wchar to double und zurück



  • case ID_SHOW1:
    		TCHAR* clamda1;
    		char* buf;
    		wchar_t* wbuf;
    
    		clamda1=new TCHAR[GetWindowTextLength(hLamda1)+1];
    		buf=new char[GetWindowTextLength(hLamda1)+1];
    		wbuf=new wchar_t[GetWindowTextLength(hLamda1)+1];
    
    		GetWindowText(hLamda1,clamda1,GetWindowTextLength(hLamda1)+1);
    
    		lamda1=wcstod(clamda1,NULL);     //wchar in double umwandeln
    
    		lamda1*=10; //irgend was sickes berechnen
    
    		sprintf(buf,"%f",lamda1);        //double in char umwandeln
    
     		for(int i=0;i<=(GetWindowTextLength(hLamda1)-1);i++)   //char in wchar umwandeln
    		       wbuf[i]=buf[i];	
    
    		wbuf[GetWindowTextLength(hLamda1)]='\0';
    
                    SetWindowText(hWnd,wbuf);
    		break;
    

    Geht das kürzer, wenn die richtige double to wchar Funktion ( _esvct() oder sowas) irgend nen Fehler in ner Debugger Hook *.h Datei hervorruft und man es dadurch also nicht verwenden kann?? Weil das scheint mir doch irgendwie umständlich 😛 Wie wandelt man dennn allgemein einen Datentyp in nen andern um, irgendwie was hin- und hershiften oder so vllt? 😛


  • Mod

    einfach einen TCHAR Piffer verwenden und _stprintf verwenden.

    Die Art und Weise wie Du hier char to wchar_t umwandelst ist falsch! Verwende mbtowc, oder noch besser entsprechende T2A A2T A2W Makros.



  • wchar_t ist ein unsigned short (16bit)



  • Klingt gut, weil dass das so nicht richtig is, war mir irgendwie klar 😛
    Aber was ist ein Piffer?

    Edit: Habs jetzt:

    _stprintf(buf,TEXT("%f"),lamda1); //buf is TCHAR und lamda1 is double
    

  • Mod

    Puffer 😃 Sorry i und u liegen für meine Griffel manchmal zu nahe beieinander...


Anmelden zum Antworten