01. januar 2005 - 21:16
Der er
17 kommentarer og 1 løsning
Variabel string til DrawText
C++ newbien har endnu et spørgsmål :) CHAR mytext[100]; RECT rt; strcpy(mytext,"Heya"); GetWindowRect(hWnd, &rt); DrawText(hdc, &mytext, -1, &rt,DT_SINGLELINE | DT_CENTER | DT_VCENTER); I dette tilfælde siger compileren cannot convert parameter 2 from 'char (*)[100]' to 'const unsigned short *' -og andre trælse og (for mig) ubegribelige ting, når jeg prøver andre varianter. Kan nogen hjælpe mig med at få DrawText til at virke med en variabel streng? :) På forhånd tak!
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
01. januar 2005 - 21:19
#1
skal DrawText(hdc, &mytext, -1, &rt,DT_SINGLELINE | DT_CENTER | DT_VCENTER); ikke være DrawText(hdc, mytext, -1, &rt,DT_SINGLELINE | DT_CENTER | DT_VCENTER); altså uden & foran mytext i kaldet ?
01. januar 2005 - 21:23
#2
Nej, den har jeg prøvet. :P Så får jeg cannot convert parameter 2 from 'char [100]' to 'const unsigned short *' -men tak for forslaget.. :)
01. januar 2005 - 21:27
#3
Hvad så hvis du undlader den & men ændrer erklæringen fra CHAR til TCHAR ?
01. januar 2005 - 21:30
#4
Så får jeg (udover mit tudefjæs :D): cannot convert parameter 1 from 'unsigned short [100]' to 'char *'
01. januar 2005 - 21:32
#5
Ja men er det ikke i strcpy linien ??
01. januar 2005 - 21:33
#6
Æh, måske skal jeg huske at tilføje at det er Embedded Visual C++ 4.0 jeg sidder med?
01. januar 2005 - 21:34
#7
Jeg ændrede det til: TCHAR mytext[100]; RECT rt; strcpy(mytext,"Heya"); GetWindowRect(hWnd, &rt); DrawText(hdc, mytext, -1, &rt,DT_SINGLELINE | DT_CENTER | DT_VCENTER); -altså TCHAR i stedet for CHAR, og fjernede & tegnet.
01. januar 2005 - 21:35
#8
Og erstat så strcpy(mytext,"Heya"); med wcscpy(mytext,_T("Heya"));
01. januar 2005 - 21:37
#9
JAAA! Fantastisk, det virker! Lav et svar. Og hvis du kan, vil du så forklare hvad _T er for en fætter? Kan ikke finde den i hjælpen?!
01. januar 2005 - 21:40
#10
svar
01. januar 2005 - 21:41
#11
Tak for hjælpen!
01. januar 2005 - 21:41
#12
ANSI UNICODE TCHAR char wchar_t (reelt en short) _T("xxx") er en TCHAR konstant d.v.s. en char* i ANSI mode og en wchar_t i UNICODE mode.
01. januar 2005 - 21:42
#13
Iøvrigt burde der ikke bruges wcscpy men _tcscpy iden den bliver til strcpy i ANSI mode og wcscpy i UNICODE mode.
01. januar 2005 - 21:56
#14
æhh! okay! Tusind tak for hjælpen. Jeg må indrømme at jeg er stået lidt af på det med ANSI/UNICODE, men jeg vil prøve at lade som ingenting, indtil jeg får lidt mere styr på C++ i det hele taget :)
01. januar 2005 - 23:22
#16
Ah okay! Nååh så faldt dén 10-øre :) tak igen. jeg takker snart over, så jeg må hellere bare gå i seng.
02. januar 2005 - 10:27
#17
Hvis jeg husker rigtig, er _T en MFC makro og eftersom du ikke ellers anvender MFC, bør du bruge TEXT makroen istedet.
02. januar 2005 - 10:59
#18
Petzold bruger TEXT men nævner _T og __T og siger at hvilken man vælger afhænger af hvor kort koden skal være - det er godt nok for mig.
Kurser inden for grundlæggende programmering