Windows API/Compiler/MSDN Doku, Zeiger - Refernezen
-
Kompiler habe ich auf "Multibyte" gestellt um t-chars wie chars zu behandeln!
-
Wie Dir die Dokumentation sagt, ist Dein String ein WCHAR - String. Den kannst Du nicht mit printf ausgeben.
-
-
Nein. Behandelt TCHAR wie char ... WCHAR ist immer wchar_t ... wie Dir Dein Programm ja auch zeigt.
TCHAR ist ein generischer Typ und wird je nach Einstellung (UNICODE oder Multibyte) im Programm via Makrozauberei zu wchar_t oder char.
Aber ... WCHAR ist nicht generisch und ist immer wchar_t.
-
Absolut Hirnrissig!
Multibyte behandelt alle UNICODES als ASCII Zeichen !Hör mal ich programmiere schön länger privat und hab soweit alles drauf was man für die Windowsprogrammierung braucht. Gut das mit den Referenzen und Zeiger war mir aufrgrund der schlechten Dokumentation nicht ganz schlüssig!
Aber eines ist sicher, ein printf() kann ein wchar ,wenn der Kompiler auf Multibyte steht ,interpretieren!
Das ging die ganze Zeit so!!!
-
Okay ...
-
Belli schrieb:
Wie Dir die Dokumentation sagt, ist Dein String ein WCHAR - String. Den kannst Du nicht mit printf ausgeben.
Freddy Kruger schrieb:
!Hör mal ich programmiere schön länger privat und hab soweit alles drauf was man für die Windowsprogrammierung braucht ...
Aber eines ist sicher, ein printf() kann ein wchar ,wenn der Kompiler auf Multibyte steht ,interpretieren!
Lernresistent? Anscheinend geht es ja nicht, oder?
PS: jedenfalls nicht mit
%s
im Formatstring.- osdt
-
Es ist auch nicht IN/OUTPUT Abhängig.
Aber Ihr sokratischen Kinder mit instinktverlogenen Eltern haltet euch immer noch mit eure Dialektik für einzigartig, häßliche Hammpelmänner die andere Familien um Ihrer Rasse besteheln nur weil Ihr Krüppel einen schwachsinnigen esoterischen Glauben verfallen seid, Ihr wärt es, weil Ihr gerade als Ratte in diversen Bundeseinrichtungen verteilt sitzt.
Aber seid beruhigt, Ihr seid´s definitiv nicht und das merken eure "Individuen" , aber was tut man nicht alles für die Scheinheiligkeit und einen dümmlichen Glauben ,das Wohlträchtige genetisch zu bestehlen um anschließend zu ermorden ,damit das Minderwertige dann sagen kann, wir sind´s.Aber errechnet man wieviel positive Genetik ihr schon bestohlen habt und wieviel Missgeburten mit geistiger Minderbemitteltheit Ihr trotzdem leidet, ist die russische Medizin die Beste.
In diesem Sinne, gegen instinktverlogene faschistische feige Homosexuelle und Lesben die in den Bundeseinrichtungen sitzen,die Vektortechnik und Nanotechnik nutzen um Bürger zu tyrannisieren !
Kommen wir nun zum eigentlichen Thema!
DWORD WINAPI WlanGetAvailableNetworkList( _In_ HANDLE hClientHandle, _In_ const GUID *pInterfaceGuid, _In_ DWORD dwFlags, _Reserved_ PVOID pReserved, _Out_ PWLAN_AVAILABLE_NETWORK_LIST *ppAvailableNetworkList );
Es Kommt nicht auf das IN/OUT der Parameter an ,wonach man Referenzen nutzt ,sondern ob die Funktion die Adresse des Pointers braucht oder nicht!
dwResult = WlanGetAvailableNetworkList(hClient, &pIfInfo->InterfaceGuid, 0, NULL, &pBssList); if (dwResult != ERROR_SUCCESS) { wprintf(L"WlanGetAvailableNetworkList failed with error: %u\n", dwResult); dwRetVal = 1; // You can use FormatMessage to find out why the function failed }
Ansonsten weitere Erklärungen bitte !
-
Kann diesen Mist da oben mal jmd. wegputzen?
@Freddy Kruger
Du hast keine Ahnung wovon du schreibst.WCHAR
ist immer "wide", unabhängig von irgendwelchen Einstellungen.
Und klar kann man mitprintf
immerWCHAR
Strings ausgeben. Nur eben nicht mit%s
. Falls du wissen möchtest wie es geht versuchs mal mit höflich fragen statt dumm und proletenhaft rumpöbeln.
-
hustbaer schrieb:
Und klar kann man mit
printf
immerWCHAR
Strings ausgeben.Jep, da lag ich falsch. Allerdings ist dies wegen des entstandenen Niveaus mein letzter Beitrag in diesem Thread.
-
Freddy Kruger schrieb:
Absolut Hirnrissig!
Multibyte behandelt alle UNICODES als ASCII Zeichen !Hör mal ich programmiere schön länger privat und hab soweit alles drauf was man für die Windowsprogrammierung braucht. Gut das mit den Referenzen und Zeiger war mir aufrgrund der schlechten Dokumentation nicht ganz schlüssig!
Aber eines ist sicher, ein printf() kann ein wchar ,wenn der Kompiler auf Multibyte steht ,interpretieren!
Das ging die ganze Zeit so!!!
du hast alles drauf was man für die windows programmierung braucht? *LOL*
du hast C überhaupt nicht kapiert, das ist dein Problem.
Bevor du nicht weißt, wie man C programmiert, brauchst du dich um Windows/Linux/... überhaupt nicht kümmern.Könntest du C, so hättest du dir kurz im Debugger den String angesehen. Ein wchar_t* String L"abc" sieht im Speicher so aus: 'a' '\0' 'b' '\0' 'c' '\0' '\0' '\0'
Du machst nun folgendes:
printf("%s", wideString);
printf gibt byteweise den char* String aus, bis es auf das erste 0 Byte stößt.
Nun rate mal warum bei dir nur das erste Zeichen ausgegeben wird...Ich empfehle dir, dich intensiv mit C auseinander zu setzen.
Du hast große Schwierigkeiten mit den Basics, daher klappt das auch nicht mit der Windows Programmierung.
Im Übrigen würde ich dir empfehlen, am Umgangston zu arbeiten.