TDM Geschrieben 5. Januar 2006 Geschrieben 5. Januar 2006 Ich habe das Problem, dass ich einen Netzdrucker über die IP hinzufügen möchte, nun ist das Problem aber, dass ich weder einen Fehlercode noch sonst irgendwas bekomme... [INDENT]DWORD dwResult; NETRESOURCE nr; nr.dwType = NETRESOURCETYPE_PRINT; nr.lpLocalName = "LP1"; nr.lpRemoteName = LP1_IP dwResult = WNetAddConnection(%nr, NULL, NULL, CONNECT_UPDATE_PROFILE)[/INDENT] Im Debuger sagt der mir: CXX0017: Fehler: Symbol "dwResult" wurde nicht gefunden Ich weis, dass man eigentliche eine Pfadangabe bei lpRemoteName machen müsste - aber sollte nicht trotzdem ein Fehlercode kommen ? AddPrinterConnection geht auch ne wirklich - ich find keine Funktion mit der man anhand der IP einen Drucker hinzufügen kann Zitieren
Klotzkopp Geschrieben 5. Januar 2006 Geschrieben 5. Januar 2006 Im Debuger sagt der mir: CXX0017: Fehler: Symbol "dwResult" wurde nicht gefundenDas ist ein Debuggerproblem. Das sagt nichts über dein Programm aus. Es wäre hilfreich gewesen, wenn du verraten hättest, was in LP1_IP drinsteht. Der echte Code kann auch nie schaden. Das, was du da hast, lässt sich mit Sicherheit nicht compilieren. Zitieren
TDM Geschrieben 5. Januar 2006 Autor Geschrieben 5. Januar 2006 LP1_IP war nen define, hab das jetzt aber erstmal rausgenommen der Code: int _tmain (argc, _TCHAR* argv[]) { [INDENT] DWORD dwResult; NETRESOURCE nr; nr.lpProvider = ""; nr.dwType = NETRESOURCETYPE_PRINT; nr.lpLocalName = "LP1"; nr.lpRemoteName = "\\\\192.168.0.50"; dwResult = WNetAddConnection(&nr, NULL, NULL, CONNECT_UPDATE_PROFILE); return 0;[/INDENT] } Wieso Debuggerproblem ? Wie krieg ich den Error Code ? Zitieren
Klotzkopp Geschrieben 5. Januar 2006 Geschrieben 5. Januar 2006 nr.lpRemoteName = "\\\\192.168.0.50"; Der Freigabename des Druckers sollte da wohl auch noch hintendran. Wie willst du sonst den zu verbindenden Drucker identifizieren? Wieso Debuggerproblem ?Der Debugger kann das Symbol dwResult nicht auflösen. Wie krieg ich den Error Code ? Hast du denn überhaupt eine Version mit Debuginformationen gebaut? Wo steht dein Breakpoint? Zitieren
TDM Geschrieben 5. Januar 2006 Autor Geschrieben 5. Januar 2006 Der Freigabename des Druckers sollte da wohl auch noch hintendran. Wie willst du sonst den zu verbindenden Drucker identifizieren? Der hat ja keinen Namen... zumindest weis ich nicht wo der name steht - drum geh ich ja über die IP... Der Debugger kann das Symbol dwResult nicht auflösen. Hast du denn überhaupt eine Version mit Debuginformationen gebaut? Wo steht dein Breakpoint? Die Variable ist doch oben als DWORD deklariert ... Wieso kann der das da ne auflösen? Sollte halt den Errorcode von dem WNetAddConnection aufnehmen, dass ich den ausgeben kann. Zitieren
Klotzkopp Geschrieben 5. Januar 2006 Geschrieben 5. Januar 2006 Der hat ja keinen Namen... zumindest weis ich nicht wo der name steht - drum geh ich ja über die IP...Wie soll das gehen? Du brauchst den Rechner und den Druckernamen. Wenn du den nicht kennst, kannst du dir mit WNetEnumResource eine Liste der freigegebenen Drucker holen. Die Variable ist doch oben als DWORD deklariert ... Wieso kann der das da ne auflösen?Keine Ahnung. Vermutlich, weil du etwas falsch machst. Meine Fragen diesbezüglich hast du nicht ja beantwortet. Aber ich frag auch gern nochmal: Hast du denn überhaupt eine Version mit Debuginformationen gebaut? Wo steht dein Breakpoint? Zitieren
TDM Geschrieben 5. Januar 2006 Autor Geschrieben 5. Januar 2006 uups... die Fragen hab ich überlesen, sry Haltepunkt hab ich keinen gemacht - ich geh mit Prozedurschritten direkt durch das Programm Wieso Version mit Debuginformationen ? ich mein den Debuger vom VS Studio O.o Das mit dem Drucker ist vielleicht falsch rübergekommen: Das ist ein Netzdrucker - im Moment hat da erstmal jeder Zugriff drauf, ich will den an den Server hinzufügen und dazu gleich eine Freigabe erstellen. Der Drucker ist noch an keinem Rechner - folglich kann ich auch keinen mit angeben. Alles was ich hab ist die MAC und die IP (ich hab jetzt auch den Druckernamen gefunden (IC0132F6)) Zitieren
Klotzkopp Geschrieben 5. Januar 2006 Geschrieben 5. Januar 2006 Wieso Version mit Debuginformationen ? ich mein den Debuger vom VS Studio O.oHast du eine Debug- oder eine Releaseversion erstellt? Hast du eine .pdb-Datei für dein Programm? ich will den an den Server hinzufügen und dazu gleich eine Freigabe erstellen. Und hast du das schon gemacht? Oder willst du das mit deinem Programm erreichen? Zitieren
TDM Geschrieben 5. Januar 2006 Autor Geschrieben 5. Januar 2006 Das will ich mit meinem Programm erreichen, da manuell einfach nicht sinnvoll ist (soll evtl. auch später von nem Bootp Server gleich ausgeführt werden - aber das ist erstmal zweitrangig) Bis jetzt ist es noch eine Debugversion, pdb ist vorhanden - wenn du mir sagst, wo ich da was suchen muss, guck ich gern nach Zitieren
Klotzkopp Geschrieben 5. Januar 2006 Geschrieben 5. Januar 2006 Das will ich mit meinem Programm erreichen, da manuell einfach nicht sinnvoll ist Wie würdest du denn da manuell vorgehen? Ich vermute, dass du da mit den WNet-Funktionen auf dem Holzweg bist - die sind dafür da, bereits installierte Ressourcen zu verbinden. Möglicherweise brauchst du AddPrinterDriverEx oder etwas aus der Ecke. Bis jetzt ist es noch eine Debugversion, pdb ist vorhandenSteht denn in der Ausgabe des Debuggers, dass er Symbole für dein Programm laden konnte? Steht das Programm in dieser Funktion, wenn du den Wert von dwResult ermitteln willst? Zitieren
TDM Geschrieben 5. Januar 2006 Autor Geschrieben 5. Januar 2006 Wie würdest du denn da manuell vorgehen? Ich vermute, dass du da mit den WNet-Funktionen auf dem Holzweg bist - die sind dafür da, bereits installierte Ressourcen zu verbinden. Möglicherweise brauchst du AddPrinterDriverEx oder etwas aus der Ecke. Na normal würde ich da über Start -> Einstellungen -> Drucker und Faxgeräte -> Drucker hinzufügen mich dann durch den Dialog klicken, Plug&Play bei lokalen Druckern disablen usw... Aber da kann ich ja dann die IP eintragen - das Problem ist, wie oben schon gesagt, dass die ganzen AddPrinter - Funktionen einen Parameter pName haben. In der MSDN steht da // server name von daher kann ich also keine IP angeben - dann kommt immer ERROR 1801 (Invalid Druckername)... Steht denn in der Ausgabe des Debuggers, dass er Symbole für dein Programm laden konnte? Steht das Programm in dieser Funktion, wenn du den Wert von dwResult ermitteln willst? So richtig seh ich in der pdb ne durch, da das fast nur Hex ist ... selbst wenn ichs mit VSS aufmach steht da ne wirklich viel. Ich find weder irgendwas von Ausgabe noch 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.