Fehlermeldung -> Konvertieren von 'wchar_t' in 'LPCWSTR' nicht möglich
-
Du hast eine variable deklariert welche aber ein Zeiger sein muss.
-
Das ist ja mal das komplett falsche Forum, also entweder gehört das nach WINAPI oder
? Was ist das für ein main?
CString schrieb:
wchar_t* variable
HighLigerBiMBam schrieb:
Du hast eine variable deklariert welche aber ein Zeiger sein muss.
Und was soll das bringen? Ein wchar_t ist 2 Byte, ein char 1 Byte groß -> inkompatible Typen.
Also entwederconst wchar_t* argv3=L"alt"; // L nicht vergessen const wchar_t* argv4=L"11111"; // oder const char* argv1="alt"; // 1 Byte pro Zeichen const char* argv2="11111"; size_t argv1len = strlen(argv1); size_t argv2len = strlen(argv2); std::vector<wchar_t> arg3(argv1len+1); 2 Byte pro Zeichen std::vector<wchar_t> arg4(argv2len+1); MultiByteToWideChar(CP_ACP,0,argv1,argv1len,&arg3[0],argv1len); MultiByteToWideChar(CP_ACP,0,argv2,argv2len,&arg4[0],argv2len); NetUserChangePassword(NULL, NULL, &arg3[0], &arg4[0]);
-
Also muss hinter jedem wchar_t ein . wchar_t also.
Dann sieht es so aus:int main(array<System::String ^> ^args) { const char* argv1; const char* argv2; argv1 = "alt"; argv2 = "11111"; wchar_t argv3; wchar_t argv4; argv3 = reinterpret_cast<wchar_t>( argv1 ); argv4 = reinterpret_cast<wchar_t>( argv2 ); system("cmd /c "); NetUserChangePassword(NULL, NULL, argv3, argv4); cin.get(); }
Jetzt bekomme ich diese Fehlermeldung:
error C2440: 'reinterpret_cast': 'const char *' kann nicht in 'wchar_t *' konvertiert werden
1> Durch die Konvertierung gehen Qualifizierer verlorenDanke nochmal für eure Hilfe
-
Nein nicht so wie oben. Ich hab es falsch gepostet.
so soll es sein:int main(array<System::String ^> ^args) { const char* argv1; const char* argv2; argv1 = "alt"; argv2 = "11111"; wchar_t* argv3; wchar_t* argv4; argv3 = reinterpret_cast<wchar_t*>( argv1 ); argv4 = reinterpret_cast<wchar_t*>( argv2 ); system("cmd /c "); NetUserChangePassword(NULL, NULL, argv3, argv4); cin.get(); }
-
Das ist ja mal das komplett falsche Forum, also entweder gehört das nach WINAPI oder
? Was ist das für ein main?
Das ist C#.
-
const ist der Qualifizierer der verloren geht.
@See sharp: Quark.
-
Das ist C++ mit .NET sieht man doch...
-
Könntet ihr mir einfach den Code aufschreiben wie er richtig heisen muss, ohne das Fehlermeldungen kommen. Wäre echt nett weil ich dann endlich weiter machen kann. Ich hänge schon scheise lange an diesem einen Problem.
-
Jockelx schrieb:
const ist der Qualifizierer der verloren geht.
@See sharp: Quark.Ah jetzt hab ichs verstanden. Jetzt läufts!
Nur ein Problem ist da immernoch: Das Passwort wird nicht geändert. Der Code sollte doch eigendlich das Windows Anmeldepasswort von dem angemeldeten User Ändern oder?
-
Jetzt solltest du vielleicht doch das Unterforum wechseln.
aber die Funktion gibt doch einen Error-Code zurück => Wert nicht wegschmeissen und gucken was nicht passt.
-
'The user has entered a invalid Password' ist der Fehler. Ich habe aber auf meinem Windowsaccount das Passwort 'alt'.
Woran könnte das liegen?
-
Weil nach einem wchar_t* = reinterpret<char*> betimmt anschliessend im wchar_t* nicht dasselbe wie im char* steht.
Ich verstehe sowieso nicht den Umweg über die char*.
Nimm doch direkt wchar_t* (mit L"bla").
-
Falsche Konvertierung. Schau doch einmal noch auf Seite 1.
-
Vicious Falcon schrieb:
Falsche Konvertierung. Schau doch einmal noch auf Seite 1.
Ooops!! Ich hab deinem Post total übersehen. Jetzt klappt alles wie es soll.
Danke nochmal an alle die mir geholfen haben!!
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Also bitte, jetzt macht Ihrs euch aber schon sehr einfach.
Oder es ist gröberes Unwissen...Das main(..) zeigt dass es sich um C++/CLI handelt. Der Rest des Codes nicht. Auch sein Problem hat damit nichts zu tun.
@OP:
Aus dem Thread: http://www.c-plusplus.net/forum/276277
Folgender Link: http://www.c-plusplus.net/forum/viewtopic-var-t-is-260205-and-start-is-10.html(BTW: ist wiedermal ein Fall wo nicht das Problem gelöst wird, sondern der Kompiler mit einem cast zum Schweigen gebracht wurde. Richtig ist es nicht.)
-
theta schrieb:
Oder es ist gröberes Unwissen..
Mir war dies main unbekannt, gebe ich zu.
theta schrieb:
Der Rest des Codes nicht.
Daher mein Vorschlag auf Seite 1, den du im Übrigen ebenfalls nicht gelesen zu haben scheinst.
-
Vicious Falcon schrieb:
theta schrieb:
Der Rest des Codes nicht.
Daher mein Vorschlag auf Seite 1, den du im Übrigen ebenfalls nicht gelesen zu haben scheinst.
Ja, stimmt. Schlecht von mir.