LLpresident Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 hey. ich habe folgenden quelltext aus der msdn übernommen. der quelltext soll überprüfen ob ein bestimmter benutzer in netzwerk angemeldet ist. aber wenn ich ihn ausführe bekomme ich mehrere fehlermeldungen. bin jetz am überlegen ob das am compiler liegt. wenn nicht:wer kann mir sagen wo der fehler liegt? kann mir jemand einen besseren vorschlag machen als diesen? quelltext: - Bitte nur den relevanten Code posten - Bitte Code-Tags benutzen - Bitte die fehlerhaften Zeilen kennzeichnen Klotzkopp Zitieren
LLpresident Geschrieben 13. Oktober 2003 Autor Geschrieben 13. Oktober 2003 - Bitte nur den relevanten Code posten - Bitte Code-Tags benutzen - Bitte die fehlerhaften Zeilen kennzeichnen Klotzkopp Zitieren
LLpresident Geschrieben 13. Oktober 2003 Autor Geschrieben 13. Oktober 2003 - Bitte nur den relevanten Code posten - Bitte Code-Tags benutzen - Bitte die fehlerhaften Zeilen kennzeichnen Klotzkopp fehlermeldungen: [C++ Warnung] Unit1.cpp(92): W8012 Vergleich von signed- und unsigned-Werten [C++ Fehler] Unit1.cpp(130): E2034 Konvertierung von 'wchar_t *' nach 'char *' nicht möglich [C++ Fehler] Unit1.cpp(130): E2340 Keine Übereinstimmung des Typs beim Parameter 1 ('char *' erwartet, 'wchar_t *' erhalten) [C++ Fehler] Unit1.cpp(130): E2034 Konvertierung von 'wchar_t *' nach 'const char *' nicht möglich [C++ Fehler] Unit1.cpp(130): E2340 Keine Übereinstimmung des Typs beim Parameter 2 ('const char *' erwartet, 'wchar_t *' erhalten) [C++ Fehler] Unit1.cpp(251): E2034 Konvertierung von 'wchar_t * *' nach 'char * *' nicht möglich [C++ Fehler] Unit1.cpp(251): E2342 Keine Übereinstimmung des Typs beim Parameter 'StringSid' ('char * *' erwartet, 'wchar_t * *' erhalten) [C++ Warnung] Unit1.cpp(306): W8012 Vergleich von signed- und unsigned-Werten [C++ Warnung] Unit1.cpp(392): W8070 Funktion sollte einen Wert zurückgeben. [C++ Warnung] Unit1.cpp(392): W8004 'pIADs' wurde ein Wert zugewiesen, der nie verwendet wird. [C++ Warnung] Unit1.cpp(392): W8004 'pObj' wurde ein Wert zugewiesen, der nie verwendet wird. thx im vorraus und schuldigung für die gestaltung. zeigt es mir anders an als er es eigentlich macht. übernimmt auch nicht die zusätzlichen leerzeichen. sorry noch mal. Zitieren
Klotzkopp Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 Du hast in genau zwei Zeilen Fehler. Und dafür postest du hier so viel Code, noch dazu ohne Code-Tags? Und du kennzeichnest nicht einmal die Zeilen, in denen die Fehler auftreten? Das ist schon ziemlich dreist. Zitieren
LLpresident Geschrieben 13. Oktober 2003 Autor Geschrieben 13. Oktober 2003 @klotzkopp. genau da liegt mein problem. ich weiss leider nicht in welchen zeilen der fehler liegt. und mit den code-tasks war ich mir unsicher wie das funktioniert. wenn ich mehr zeit hätte hätte ich erst mal im test-forum getestet. deshalb hab ich mich ja auch gleich entschuldigt. Zitieren
Klotzkopp Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 Original geschrieben von LLpresident @klotzkopp. genau da liegt mein problem. ich weiss leider nicht in welchen zeilen der fehler liegt. Das steht doch in der Fehlermeldung: [C++ Fehler] Unit1.cpp(130): E2034 Konvertierung von 'wchar_t *' nach 'char *' nicht möglich [C++ Fehler] Unit1.cpp(130): E2340 Keine Übereinstimmung des Typs beim Parameter 1 ('char *' erwartet, 'wchar_t *' erhalten) [C++ Fehler] Unit1.cpp(130): E2034 Konvertierung von 'wchar_t *' nach 'const char *' nicht möglich [C++ Fehler] Unit1.cpp(130): E2340 Keine Übereinstimmung des Typs beim Parameter 2 ('const char *' erwartet, 'wchar_t *' erhalten) [C++ Fehler] Unit1.cpp(251): E2034 Konvertierung von 'wchar_t * *' nach 'char * *' nicht möglich [C++ Fehler] Unit1.cpp(251): E2342 Keine Übereinstimmung des Typs beim Parameter 'StringSid' ('char * *' erwartet, 'wchar_t * *' erhalten) und mit den code-tasks war ich mir unsicher wie das funktioniert. wenn ich mehr zeit hätte hätte ich erst mal im test-forum getestet. deshalb hab ich mich ja auch gleich entschuldigt. Ach so, wenn man sich gleichzeitig entschuldigt, darf man machen, was man will? Naja... Also bitte, zeig uns Zeile 130 und Zeile 251 von Unit1.cpp. Zitieren
Hexagon Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 Original geschrieben von Klotzkopp Du hast in genau zwei Zeilen Fehler. Hm...wenn ich mir die Warnungen so angugge würde ich sagen das er noch nicht so lange programmiert. Wir sollten ihm das verzeihen...(nein nicht den langen quellcode, das übersehen der Fehlermeldung meine ich...) ...solltest du aber schon länger programmieren so sei dir gesagt: Klick mich... Zitieren
LLpresident Geschrieben 13. Oktober 2003 Autor Geschrieben 13. Oktober 2003 @hexagon: programiere schon ein weilchen. komme mit den fehlermeldungen trotzdem nicht so klar wegen objektorientiert und so. auserdem wollte ich halt wissen ob euch noch ne bessere möglichkeit als diese einfällt. hier die zwei zeilen: 130: wsprintf(pszSearchFilter, L"(&(objectClass=user)(objectCategory=person)%s)",szFilter); 251: ConvertSidToStringSid(pObjectSID, &szSID); Zitieren
Klotzkopp Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 Original geschrieben von LLpresident 130: wsprintf(pszSearchFilter, L"(&(objectClass=user)(objectCategory=person)%s)",szFilter);Hier meinst du vermutlich swprintf. 251: ConvertSidToStringSid(pObjectSID, &szSID); Wenn du nicht UNICODE definierst, aber hier trotzdem die Unicode-Version haben willst, musst du die explizit aufrufen, mit ConvertSidToStringSidW. auserdem wollte ich halt wissen ob euch noch ne bessere möglichkeit als diese einfällt. Dazu wäre es hilfreich gewesen, zu erklären, was der Code tun soll... Hat das einen bestimmten Grund, dass du überall wchar_t benutzt? Zitieren
LLpresident Geschrieben 15. Oktober 2003 Autor Geschrieben 15. Oktober 2003 @klotzkopp: ok. deine vorschläge haben geklappt. bekomme jetzt blos noch folgenden fehler: [Linker Fehler] Unresolved external '_main' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\LIB\C0X32.OBJ diesen quelltext hab ich aus der msdn zum thema lastlogoff gefunden. dadurch will ich herraus finden wann sich jemand das letzte mal ein- und ausgelogt hat über das netzwerk. Zitieren
Klotzkopp Geschrieben 15. Oktober 2003 Geschrieben 15. Oktober 2003 Dein Programm hat keine main-Funktion. Zitieren
LLpresident Geschrieben 15. Oktober 2003 Autor Geschrieben 15. Oktober 2003 irgentwie rall ich heut nix. hab die main jetz so gemacht: void main() { HRESULT GetUserProperties(IADs * pObj); HRESULT EnumeratePropertyValue(IADsPropertyEntry *pEntry); HRESULT FindUserByName(IDirectorySearch *pSearchBase,LPOLESTR szFindUser,IADs **ppUser); }[/PHP] trozudem bekomme ich keine nachrichten oder kann irgentetwas eintippen. woran liegt das. Zitieren
LLpresident Geschrieben 15. Oktober 2003 Autor Geschrieben 15. Oktober 2003 frage:wieso funktioniert wmain nicht? das ganze programm basiert auf unicode, also müsste wmain doch funktionieren und als main-funktion erkannt werden oder nicht? muss ich vieleicht eine spezielle headerdatei einbinden? Zitieren
Klotzkopp Geschrieben 15. Oktober 2003 Geschrieben 15. Oktober 2003 Original geschrieben von LLpresident irgentwie rall ich heut nix. hab die main jetz so gemacht: void main() { HRESULT GetUserProperties(IADs * pObj); HRESULT EnumeratePropertyValue(IADsPropertyEntry *pEntry); HRESULT FindUserByName(IDirectorySearch *pSearchBase,LPOLESTR szFindUser,IADs **ppUser); }[/PHP][/b]Das schluckt dein Compiler? Das sind Funktionsdeklarationen, keine Aufrufe. [b]trozudem bekomme ich keine nachrichten oder kann irgentetwas eintippen. woran liegt das. [/b]Nachrichten? Eintippen? Das ist doch ein Konsolenprogramm, oder? Wo sollten da Nachrichten herkommen? [b]frage:wieso funktioniert wmain nicht? das ganze programm basiert auf unicode, also müsste wmain doch funktionieren und als main-funktion erkannt werden oder nicht? muss ich vieleicht eine spezielle headerdatei einbinden? [/b]Dein Programm "basiert" nicht auf Unicode. Dazu hättest du UNICODE auf globaler Ebene per Präprozessordirektive (oder in den Projekteinstellungen der IDE) definieren müssen. Und hättest du das getan, hättest du weiter oben nicht ConvertSidToStringSidW schreiben müssen. Zitieren
LLpresident Geschrieben 16. Oktober 2003 Autor Geschrieben 16. Oktober 2003 aha. gut. is eigentlich logisch. problem ist jetzt das mir aus der hilfe folgender text gegeben wurde: (Kommandozeilenäquivalent: -WU) Mit Hilfe dieser Option wird aus Quelltext, der die _txxxx-Makros in TCHAR.H verwendet, eine Unicode-Anwendung erzeugt. Wenn _UNICODE aktiviert ist, werden die Makros durch Unicode-Namen ersetzt, andernfalls durch Nicht-Unicode-Namen. Beispielsweise kann der folgende Code in beiden Varianten compiliert werden (-WU erzeugt eine Uniocode-Anwendung). #include <stdio.h> #include <tchar.h> int _tmain(char argc, _TCHAR ** _targv) { _TCHAR buff[200]; int i; for (i = 0; i < argc; i++) { _tcscpy(buff, _targv); _tprintf(_T("Argument %d:%s\n"), i, buff); } return 0; } In diesem Beispiel wird _tcscpy ersetzt durch wcscpy, wenn -WU verwendet wird, anderfalls durch strcpy. Ähnliches gilt für _tprintf/wprintf oder printf, _TCHAR/wchar_t oder char und _targv/_wargv oder _argv. Das Makro _T(...) wandelt den in Klammern stehenden String in Wide-Zeichen oder einen Standard-String um. Die Header-Datei TCHAR.H bildet außerdem _tWinMain auf WinMain oder wWinMain ab und so weiter. Die komplette Umwandlungsliste finden Sie in der Header-Datei. Standard = AUS mein problem ist das ich keinen plan habe wo ich dieses -WU eintippen soll damit er unicode aktiviert. in den optionen für den compiler hab ich leider auch nichts gefunden. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.