02. august 2006 - 20:12
Der er
7 kommentarer og 1 løsning
Cannot convert parameter 1 from 'char [5]' to 'LPCWSTR'
Følgende kode giver nedenstående fejl: char portstr[5] = "COM "; portstr[3] = 48 + port ; HComdev = CreateFile(L(portstr), GENERIC_READ | GENERIC_WRITE, NULL, 0, OPEN_EXISTING, 0, 0); *************** Fejl: error C2664: 'CreateFileW' : cannot convert parameter 1 from 'char [5]' to 'LPCWSTR' Hvordan retter jeg det?
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
02. august 2006 - 20:15
#1
Hvis du bruger unicode (som W på CreateFile indikerer) skal portstr nok være wchar_t eller WSTR?
02. august 2006 - 20:17
#2
proev: wchar_t portstr[5] = L"COM "; portstr[3] = 48 + port ; HComdev = CreateFile(portstr, GENERIC_READ | GENERIC_WRITE, NULL, 0, OPEN_EXISTING, 0, 0);
02. august 2006 - 20:18
#3
Det kunne f.ex være: #define UNICODE #include <windows.h> int main() { WCHAR portstr[5] = L"COM "; WCHAR port = 1; portstr[3] = 48 + port; HANDLE HComdev = CreateFile(portstr, GENERIC_READ | GENERIC_WRITE, NULL, 0, OPEN_EXISTING, 0, 0); } Bemærk at jeg har flyttet L(...)
02. august 2006 - 20:19
#4
Det var meget bedre;-) Tak for hjælpen - ligger du et svar?
02. august 2006 - 20:20
#5
Nå, det var vi næsten enige om. Gcc er i øvrigt lidt emsig, den bryder sig ikke om at du bruger NULL som tredie parameter, det er ikke en pointer.
02. august 2006 - 20:23
#6
jeg vil nok ioevrigt mene at: TCHAR portstr[5] = _T("COM "); portstr[3] = 48 + port ; HComdev = CreateFile(portstr, GENERIC_READ | GENERIC_WRITE, NULL, 0, OPEN_EXISTING, 0, 0); nok var paenere fordi argumentet faktisk er LPCTSTR som dog altid er en LPCWSTR paa NT/2000/2003
02. august 2006 - 20:32
#7
Point må gå til Arne, jeg samler ikke.
04. august 2006 - 01:32
#8
det skal da så kun være p.g.a. min sidste T post
Kurser inden for grundlæggende programmering