TTN_NEEDTEXT
-
Wer kann helfen Konvertierung von VS6 nach VS2010
folgender Code läuft unter VS6 richtig und bei VS2010 kommen Hiroglyphen.
case TTN_NEEDTEXT: if(((NMHDR*)lParam)->idFrom ==IDT_DRUCK) { TOOLTIPTEXT* tip = (TOOLTIPTEXT*)lParam; char txt[80]; strcpy(txt,"Drucken"); tip->lpszText = txt; } break;
Gebe ich statt der Variable einen Wert so ein:
tip->lpszText = "Drucken";kommt der Tooltip richtig raus. Warum?????
-
papa_multi schrieb:
Gebe ich statt der Variable einen Wert so ein:
tip->lpszText = "Drucken";kommt der Tooltip richtig raus. Warum?????
Ich würde mal auf ein Scope-Problem tippen - du übergibst die Adresse einer lokalen Variablen und diese wird kurz darauf ungültig und vermutlich durch andere Variablen überschrieben.
-
Das kann nie funktioniert haben!
Zudem kann das doch nicht gehen. Der Buffer den Du zurück gibst wird doch im Stack freigegeben. Du musst den Speicher nehmen der Die angeboten wird.
Oder einen Buffer verwenden der auch noch nach Rückkehr aus Deinem Handler gültig ist.Hast Du evtl. auch noch Unicode eingeschaltet?
Dann würde es mich auch in keiner Weise wundern, das hier noch en Prblem ist . Verwende TCHAR und Du hättest keine Probleme.case TTN_NEEDTEXT: if(((NMHDR*)lParam)->idFrom ==IDT_DRUCK) { TOOLTIPTEXT* tip = (TOOLTIPTEXT*)lParam; _tcsncpy(tip->szText,_T("Drucken"),_countof(tip->szText)); }