Code ohne unicode zum laufen bringen



  • Ich habe folgenden Code der bei unicode compilierung das macht was er soll:

    char cnr[10];
    
    	sprintf_s (cnr,"COM%d",comport);
    
    	WCHAR wstrCom[MAX_PATH];
    	MultiByteToWideChar(CP_ACP, 0, cnr, -1, wstrCom, 256);
    
    		hCom = CreateFile(wstrCom,  
    						  GENERIC_READ | GENERIC_WRITE,
    						  0,0,
    						  OPEN_EXISTING,
    						  0,//FILE_FLAG_OVERLAPPED,
    						  0);
    

    Jetzt muss ich aus diversen gründen ohne unicode compilieren und bekomme bei CreateFile folgenden Fehler:

    'CreateFileA' : cannot convert parameter 1 from 'WCHAR [260]' to 'LPCSTR'

    Gebe ich das array cnr direkt an, so kann ich compilieren aber ich glaube dadurch funktioniert es nicht mehr?!

    hCom = CreateFile(cnr,  
    						  GENERIC_READ | GENERIC_WRITE,
    						  0,0,
    						  OPEN_EXISTING,
    						  0,//FILE_FLAG_OVERLAPPED,
    						  0);
    

    Wie kann ich das lösen? danke 🙂 🙂



  • mcfmitfreundlichengruesen schrieb:

    '[b]CreateFileA[/b]' : cannot convert parameter 1 from 'WCHAR [260]' to 'LPCSTR'
    

    na? fällt dir was auf?

    mcfmitfreundlichengruesen schrieb:

    Gebe ich das array cnr direkt an, so kann ich compilieren

    ist doch logisch, bei CreateFile verwendet er CreateFileA -.-"
    --> lerne, fehlermeldungen zu lesen und zu verstehen.
    also entweder projekt auf Unicode umstellen, sodass UNICODE bzw. _UNICODE definiert sind oder explizit CreateFileW benutzen.


Anmelden zum Antworten