Versuchen, Text an ein Bearbeitungssteuerelement in einem Dialogfeld anzufügen. Ich kann _tcscat_s nicht korrekt anhängen. Es stürzt ab und sagt etwas über den Puffer, der zu klein ist oder etwas über eine null beendete Zeichenkette.
%Vor% GetWindowTextLength()
gibt die Anzahl der TCHAR
-Elemente im Text zurück, aber GlobalAlloc()
erwartet stattdessen eine Byteanzahl. Wenn Sie für Unicode kompilieren, ist TCHAR
2 Bytes, nicht 1 Byte, aber Sie berücksichtigen das nicht. Sie reservieren den Puffer auch nicht groß genug, um sowohl den vorhandenen Text als auch den angehängten neuen Text aufzunehmen. Sie verlieren auch den Speicher, den Sie zuordnen.
Versuchen Sie Folgendes:
%Vor%Alternativ:
%Vor% Wenn Sie den aktuellen Text des Fensters in den Arbeitsspeicher holen, ihn anhängen und dann den Text des Fensters ersetzen, ist das eine sehr ineffiziente Methode, Text an ein Bearbeitungssteuerelement anzuhängen. Verwenden Sie stattdessen die Nachricht EM_REPLACESEL
:
Tags und Links c c++ winapi windows-controls