Hallo Leutz, auch auf die Gefahr hin müde belächelt zu werden möchte ich die große Gemeinde an meinem Problem teilhaben lassen und hoffe auf ein recht großes Echo. Also mein Problem: Ich habe ein Demo-Board mit einem PIC-µC drauf, welcher über USB mit dem PC verbunden werden kann (von Velleman). Es ist auch Demo-Software mit Quelltext mit dazu, aber in Delphi, VB oder C++ für Borland (C++-Builder). Ich beschäftiger mich aber zur Zeit mit C# und möchte das ganze auf C# portieren. Soweit ich das gesehen habe darf ich die ganze Sache von Grund auf neu machen, was mir aber gar nicht so unrecht ist (der Weg ist das Ziel!!). Ich habe hier im Forum und bei Google gestöbert aber bin nicht so richtig fündig geworden. Auch in der MSDN gab es nicht das was ich brauche. Was brauche ich? Ich suche eine Anleitung (ganz universell) zum aktivieren und ansprechen der USB-Schnittstelle. Also ganz einfach Step bei Step (z.B. Erkennen des USB-Devices, ID ermitteln, Daten senden, Verbindung beenden) Ich suche KEINE Code-Schnipsel oder fertigen Code!!!!!! Recht wäre mir aber ein Hinweis auf verschiedene Funktionen in der API. Soweit wie ich gesehen habe treten die Probleme doch öfter hier im Forum auf. Ich könnte mir auch vorstellen ein Tutorial zu erstellen und das hier im Forum mit anzubieten (da kann dann der obligatorische Verweis drauf gelegt werden ;-)) ). Dazu sollte das aber erst einmal funktionieren!!! Denkt bitte daran, auch wenn es banal erscheint: Der Weg ist das Ziel! Danke! Asterix
www.usb.org für die USB-Spezifikation http://libusb-win32.sourceforge.net/ für eine Library, um aus Usermode-Programmen mit USB-Devices kommunizieren zu können. Bietet C# irgendeinen Vorteil?
> Recht wäre mir aber ein Hinweis auf verschiedene Funktionen in der > API. Das sind zwar die selben Funktionen, die auch in den anderen Sprachen verwendet werden, aber das kannst Du haben. :-) Zur Kommunikation mit dem Treiber gibt es die Funktionen CreateFile, CloseHandle, ReadFile, WriteFile und DeviceIoControl. Zum Erkennen der Devices gibt es das Setup-API. Die wichtigsten Funktionen für Dich heißen SetupDiGetClassDevs, SetupDiEnumDeviceInterfaces, SetupDiGetDeviceInterfaceDetail und SetupDiDestroyDeviceInfoList. Willst Du über Änderungen an der Konfiguration informiert werden, mußt Du Dir zusätzlich RegisterDeviceNotification ansehen. Ich frage mich aber, ob das Problem nicht etwas tiefer sitzt. Weißt Du im Groben, wie der USB funktioniert? Weißt Du, wie Dein Demo-Board mit dem PC kommuniziert? Fällt das Gerät unter eine Standard-Geräteklasse? Wenn ja, dann könnte es zur Kommunikation noch weitere spezielle Funktionen im API geben. Wenn nein, hast Du Dich dann mit der Dokumentation des zugehörigen Treibers beschäftigt? Bist Du Dir im klaren darüber, welche IOCTLs er verarbeitet? > Ich könnte mir auch vorstellen ein Tutorial zu erstellen und > das hier im Forum mit anzubieten Das ist leider nicht so einfach, andere füllen damit soagr ganze Bücher. Für den Start kann ich Dir nur Jan Axelsons Werk empfehlen, das gibt es auch in deutsch. Darin gibt es auch jede Menge Beispiele, an denen man jede Menge lernen kann. Allerdings gibt es keinen Code für den PIC und auch nichts in C#.
>Ich suche eine Anleitung (ganz universell) zum aktivieren und >ansprechen der USB-Schnittstelle. Sowas gibt's standardmäßig bei Windows nicht (im Gegensatz zu RS232-Schnittstellen), d.h. es gibt keinen "allgemeinen" Treiber für alle USB-Geräte. Als Open-Source-Projekt gibt's allerdings diese Software (wurde bereits von Rufus genannt): http://libusb-win32.sourceforge.net/ Bei Windows ist eine API für HID-Geräte (Mäuse, Keyboards, etc.) vorhanden. Da Du sagst, daß bei Deinem Board bereits Software zur Ansteuerung dabei ist, muss dann entweder auch ein Treiber dabei sein (hoffentlich mit Anleitung), oder der PIC implementiert ein HID-Gerät. Infos zu HID-Geräte-Ansteuerung unter Windows gibt's hier: http://www.lvr.com/hidpage.htm
Danke erst einmal für die schnellen Antworten! Ich hab mal ein Beispielprojekt von Velleman mit den Dokumentationen angehängt. Weiteres bei www.velleman.be . Der Kit hat die Bezeichnung K8055. So zu mir: Ich kann ganz gut mit µC umgehen und kann in C auch recht gut programmieren. Und über DOS etwas anzusprechen ist auch kein Problem. Ich will (und muß) aber jetzt einen Schritt weiter gehen und mich mit Windows auseinander setzen, z.B. Daten über USB an den PC schicken und auswerten. @Rene und Jochen : Mit den Kits und Demos ist das so eine Sache. Das funktioniert schon, aber wehe du willst etwas abwandeln und eigene Wege gehen!!! Und die Doku bezieht sich nur auf's Löten und Installieren (toll!) Die dll ist schon dokumentiert, schein aber in einem Projekt nicht zu laufen (ich habe das BCB-Projekt versucht auf VS.NET zu portieren). Mir scheint, genaueres weiß ich nicht, der PIC implementiert ein HID-Gerät. Ich kann nur eine Adresse einstellen, es ist aber nicht dokumentiert was für eine. Woran erkenne ich ob der PIC ein HID-Gerät installiert? Mein Buch über USB 2.0 liegt "natürlich" zu Hause und ich bin erst am Freitag wieder dort, dann werde ich es mir zu Gemüte führen. Das ist aber nur die halbe Warheit. Ich suche schon seit Tagen in der MSDN oder im Netz nach Info's. Aber etweder ich bin zu blind (:-)) oder mir fehlt einfach ein treffender Begriff um zum richtigen Ergebnis zu kommen. Desweiteren habe ich in meiner beruflichen Praxis (Weiterbildung von Arbeitslosen) festgestellt, daß viele Dinge, welche für uns banal sind (z.B. rechte Maustaste => Kontextmenü) für Neulinge schier unüberwindbare Hindernisse darstellen. So muß ich den Leuten auch erst mal zeigen, wie man eine SPS einschaltet, urlöscht oder die Daten einspielt. Es wäre schön wenn ein paar von euch in dieser Richtung denken würden und mir mit ein paar Sätzen das Grundprinzip der Initialisierung und das Ansprechen der USB-Schnittstelle erklärt. Vielleicht läßt sich ja noch der Bogen zur Seriellen mit schließen und dann wäre ich glücklich! @ Rene: Die Funktionen habe ich mir schon einmal angeschaut, das wäre ein erster Schritt. Hier gilt das oben Gesagte zu den Suchbegriffen. Einen Code für den PIC direkt brauche ich nicht, das biege ich mir dann schon hin und auch den C++-Code kann ich bestimmt in C# portieren, WENN ich das Prinzip des Schnittstellenzugriffs kapiert habe. Darum geht es mir eigentlich! @Rufus: C# ist der Nachfolger von C++. C++ soll mittlerweile so überladen (doppeldeutiger Code) sein, das die Programmierer selber Probleme haben sollen ihn wieder aufzudröseln. So steht es im Statement zu C#. Aber hier mit Bedacht in der Wenn-Form geswchrieben, da ich leider kein Informatiker bin und keine weiteren Erfahrungen damit habe. Ihr wißt ja sicher aus eigener Erfahrung: Programmiert ist schnell, aber den Code nach 14 Tage immer noch zu verstehen ist etwas anderes. So, ich geh jetzt erstmal in den Biergarten freu und dann bewältige ich den neuen Input! Habt erstmal vielen Dank dafür!! Asterix
Moin, moin, nach intensiver Suche und Recherche (Dank eurer Tipps) bin ich erst mal einen Schritt weiter. => Ich weiß zumindest erst einmal, was ich alles nicht weiß und noch lernen muß.... :-(( Naja, es wird schon werden. @Jochen: Der PIC wird als HID-Gerät erkannt, mit der exakten Bausatz-Kennung (K8055). Ein paar Bücher (Axelson u.a.) hab ich mir bei Amazon bestellt. Ich werde darüber berichten, ob das was taugt! Die Funktionen vom Jochen (die Tipps) werd ich in den nächsten Tagen mal in Code setzen und probieren. Noch eine Frage: Ich habe zu Hause (mir war so) die Win2000-API-Referenz liegen. Kann ich die im Groben auf XP übertragen oder gibt es da gravierende Differenzen?? Oder ist es nur noch ein Staubfänger? ;-) Danke an alle und schönes WE!!! Asterix
Betr. API-Referenz: Der Unterschied zwischen Windows XP und Windows 2000 ist ziemlich gering. Beide sind Versionen von Windows-NT (2000 ist 5.0, XP ist 5.1); aus was für Gründen auch immer hat MS aber aufgehört, Windows NT so zu nennen. (Der 2003 Server hat die interne Versionsnummer 5.2) Mit XP sind einige neue Dinge hinzugefügt worden, die 2000 noch nicht kannte, aber das betrifft weniger die Programmierung als die Benutzung (Remote Desktop, schnelle Benutzerumschaltung, buntes geblubber). Anders sieht es mit Windows 95 und seinen Aufgüssen aus (98 und Me), die unterscheiden sich teilweise ziemlich deutlich von Windows NT. Viel Erfolg! BTW: Die Behauptung, C# wäre der Nachfolger von C++, halte ich für ziemlich gewagt. So etwas kann nur einer Marketingabteilung einfallen, es stimmt schlichtweg nicht.
'NT' steht für New Techology und das ist nach 10 Jahren doch etwas abgegriffen... Eine wesentliche Neuerung gegenüber NT sind die nachladbaren Treiber wie sie ja auch für USB nötig sind. Vorgabe für NT war eigentlich ein Microkernel der das schon können sollte, aber irgendwie haben die Jungs und Mädels von MS das dann doch nicht hingekriegt. Die Funktionen sind im DDK dokumentiert. In meiner VisualStudio 2003 Hilfe sehe ich die auch, kann aber auch sein das ich mal das DDK installiert habe. Die wichtigsten wurden hier von René König genannt, wenn z.B. nach SetupDiEnumDeviceInterfaces googelst findest du sofort was auf www.codeguru.com. Insgesammt ist das aber harter Stoff, eher was für lange winterabende... Als Beispiel kann man auch die Delphi-Treiber für den IOWarrior nehmen. Da hat man gleich eine Hardware zum ausprobieren (zumindest PC seitig). Ist zwar Delphi, aber sehr sauber programmiert und nutzt die ganzen DDK Befehle um das USB Device zu erkennen und zu nutzen. Ich wollte das auch mal nach C# umsetzen, aber der Anfall ging vorbei :-) Mit der DirectInput unterstützung (ab DirectX 9) geht das für HID Devices auch einfacher.
. "'NT' steht für New Techology und das ist nach 10 Jahren doch etwas abgegriffen..." D'accord. 10? Jetzt sind's knapp 12*, als W2K 'rauskam, waren's 8. "Eine wesentliche Neuerung gegenüber NT sind ..." Bitte in solchen Sätzen "NT" durch "NT 4.0 (und älter)" ersetzen. W2K und XP sind eben auch NT. Grund für die Haarspalterei ist die Vermeidung von Verwechslungen; es gibt immer noch Leute, die glauben, Windows XP wäre der Nachfolger von Windows Me. Allerdings sehe ich keinen Grund, einen Namen nur deshalb durch einen (auch noch irreführenden) anderen zu ersetzen, nur weil er alt ist; das scheint mir ein Hirngeschwulst aus der Marketingabteilung zu sein. Naja, deren "Gedanken"gänge waren mir noch nie nachvollziehbar. Wie auch immer, die Treiberprogrammierung für egal welche Windows-Version ist ... reichlich eklig. Wobei wohl in absehbarer Zeit Abhilfe zu erhoffen ist; MS scheint eine neue Treiberarchitektur namens WDF (Windows Driver Foundation) bzw. KMDF (Kernel Mode Driver Framework) in der Mache zu haben. Unter http://www.osronline.com/article.cfm?article=390 gibt es einen Artikel darüber, allerdings muss man sich vorher bei OSR registrieren, um an diesen Artikel 'ranzukommen. *) habe im Herbst '93 mit einer Beta von NT 3.1 gearbeitet
die offiziele Handelsbezeichnung ist aber nunmal Windows XP, 2000 oder NT ver x.y. Auch der 'ver' Befehl in der Kommandozeile meldet ein Windows XP oder 2000 (nur der 2003er Server ist lediglich 'Microsoft Windows'). Beim Booten meldet Windows 2000 auch noch 'built on NT'. Wer also Treiber programmieren will und XP für einen Dos Aufsatz hält der hat noch viel mehr zu lernen... Und die Treiberprogrammierung würde ich nicht eklig sondern komplex nennen. Da muss man sich eben mit Kernel/Usermode beschäftigen. Die nützlichen Features wie Hot Plug&Play, Suspend, Hibernate usw. muss der Treiberprogrammierer heute alle im Hinterkopf haben wenn es ein ordentlicher Treiber werden soll.
Soweit ich weiß ist C# von Microsoft. Der Name wurde nur so gewählt, damit sich das Produkt besser verkauft. C# ist absolut kein Nachfolger von C++, obwohl das viele glauben. Ich würde die Finger von C# lassen, da man sich immer weiter in die Fänge von Microsoft begiebt. Das mag sich zwar jetzt etwas übertriegen anhören, aber ich möchte nur auf eines hinweisen: Sicheres Betriebssystem - TCPA.
@Herbert: Das klingt zwar etwas paranoid, Dir ist aber trotzdem zuzustimmen. Worin der Vorzug einer Programmierumgebung besteht, die eine 20 MByte große Laufzeitumgebung benötigt, das hat sich mir noch nicht so recht erschließen können. Das bezieht sich auf das ganze dot-net-Geraffel, nicht nur auf C#. Auch finde ich es äußerst ungeschickt, aus Angst vor Pointern und "buffer overflows" eine andere Programmiersprache zu verwenden, die die zugrundeliegende Maschine (noch) weiter abstrahiert - wenn ein so "erfahrener" Programmierer mal mit "echtem" C oder C++ arbeiten muss, fällt er ähnlich unsanft auf die Schnauze, wie ein Pascal/Delphi-Programmierer beim Erstkontakt mit Pointern. Andererseits: Sollen die Lemminge, äh, anderen ... doch alle sich auf C# stürzen, so kann man mit fundiertem C- und C++-Wissen ziemlich viele verwaisten Nischen besetzen. Und Programme mit vorhersagbarem Laufzeitverhalten, größerer Hardwarenähe und geringerem Codeumfang schreiben. Auf jeder Hardware, auch auf kleinen 8-Bit-RISC-Prozessoren, und nicht nur auf fetten 32-Bit-Maschinen mit fetten 32-Bit-Betriebssystemen, die das dot-net- oder auch mono-Geraffel unterstützen. Geht Ihr nur, Ihr Lemminge!
C# wird ja bald in Longhorn nativ unterstütz, dann ist zumindest die 20MB-Download Hürde schonmal weg. Auch sollen einige der neuen Funktionen nur mit C# so richtig funktionieren... leider... Meiner Meinung nach muss man ja irgendwie neue, schnellere und teurere Prozessoren fördern und wie ginge das besser als mit immer langsameren Virtualisierungen der Hardware.
@Tobi: Da hast Du sicherlich recht. Ich muss mir dringend ein vierfach Doppelkern-Opteron-System mit mindestens 16 GByte RAM anschaffen, sonst kann ich mit den neuesten MS-Produkten nicht mehr mithalten. Und 'ne Graphikkarte mit 150 Watt Leistungsaufnahme und 512 MByte RAM, die dürfte für einfache Konsolanwendungen knapp reichen.
Hi ich bin da, im Gegensatz zu einigen anderen hier, recht emotionslos. Jede Sprache sollte dort eingesetzt werden wo es sinnvoll ist. Niemals würde ich auf die Idee kommen mit C# oder Java einen 8 Bitter programmieren zu wollen oder irgendwelche Algorithmen zu implementieren bei denen es auf jede µs ankommt. Genausowenig würde ich auch nur einen Gedanken daran verschwenden mit C eine GUI-Anwendung zu schreiben. schauder Das Argument der 20MB Laufzeitumgebung hat IMHO auch keinerlei Gültigkeit. Die nächste Version von Windows bringt das eh schon mit und wenn man das eben jetzt schon verwenden will muß man einmal die 20MB runterladen. Na und? Das dürfte einen Windowsnutzer kaum stören wo doch für ein jungfräuliches XP knapp 300MB Download nötig sind um es auf einen halbwegs sicheren Stand zu bringen. Das .net Framework beseitigt zusätzlich einige Probleme die sich in Windows angesammelt haben. Ich sag nur "DLL-Hell". C# bringt nebenbei einige nette Sprachkonzepte (Propertys, Attribute, Delegates) mit die die von Java und C++ übertreffen und kaum eine Eigenschaft von C++ vermissen lassen (ich vermisse außer Templates eigentlich nichts). Longhorn wird, wenn sie es wirklich so umsetzen wie angekündigt, vermutlich den Prozessor zumindest von der Grafikarbeit etwas entlasten da der Grafikkarte mehr Arbeit überlassen wird. Matthias
Hallo, ich benutze in der Firma vorwiegend C# oder VB.Net. Damit lassen sich im vergleich zu C++ in minimaler Zeit sehr gute Anwendungen Programmieren, und das ist es was Zählt, wie schnell ein Produkt verkauft werden kann. Wer in C# mit Pointern arbeiten will, kann das weiterhin tun. Man kann eine Methode Problemlos als unsaved Code markieren. Somit sind wieder alle sauereien die in C/C++ zugelassen sind erlaubt. Der vorteil von Managed Code ist das er Sehr Stabil ist, da man gezwungen ist sich an eine Strikte Objektorientierung zu halten. Das Argument C#/Java/Phyton... seien langsam ist totaler unsinn. Untersuchungen haben gezeigt das bei strikter Objektorientierter Programmierung C++ total unterlegen ist. Delphi kommt da noch einigermaßen mit. Aber NIE war C++ schneller. In der C´t war vor ca 1 Jahr über mehrere ausgaben hinweg ein Vergleich der vor und Nachteile von Java, .Net, C++. Und kein mittleres bis größeres SW Projekt wird heute noch ohne konsequente objektorientierung Programmiert. Es gibt Sicher auch Ausnahmen wo C++ seine Berechtigung hat, wie Schnelle Algorithmen,... oder im Embedded bereich wo ich NICHT mit C# oder Java Programmieren möchte. Da gehört C oder ++ hin. Ob man nun .Net oder Mono Py oder Java nimmt muss jeder mit seinem eigenen Gewissen vereinbaren. Es gibt ja genug alternativen. Aber im moment ist C# das bessere Java, da Microsoft aus den fehlern von Sun und C++ lernen konnte und keine altlasten mitschleppen muss. Sebastian
@Sebastian Du redest Unsinn: "Das Argument C#/Java/Phyton... seien langsam ist totaler unsinn. Untersuchungen haben gezeigt das bei strikter Objektorientierter Programmierung C++ total unterlegen ist. Delphi kommt da noch einigermaßen mit. Aber NIE war C++ schneller. In der C´t war vor ca 1 Jahr über mehrere ausgaben hinweg ein Vergleich der vor und Nachteile von Java, .Net, C++." Bei strikter objektorientierter Programmierung total unterlegen, ROFL C#/Java/Python sind nie schneller als C++, wenn der C++ Programmierer Ahnung von seiner Programmiersprache hat. Der Vergleich in der c't treibt jeden halbwegs erfahrenen C++ Programmierer die Tränen in die Augen. Das einzige wo du recht hast ist, daß man mit C# schneller Projekte umsetzen kann, weil der garbage collector einfach die Programmierung enorm erleichtert. Die Klassenbibliothek bei C# ist auch ganz gut. Auch die Sache mit den Events gefällt mir bei C# sehr gut. Ich hab nur bedenken, daß man mit C# irgendwann bei richtig großen Projekten, an denen man Jahre entwickelt, in einer Sackgasse endet. Ich hatte z.B. so ein Problem beim Lesen einer riesigen XML-Datei. In C++ mit dem Apache XML Parser war die Datei in weniger als 0.5s eingelesen und ausgewertet. Mit C# hat das über 30s gedauert! Deshalb gilt für mich: für kleine Projekte ok, für große Projekte muss C# erstmal seine Tauglichkeit beweisen.
@Sebastian Zu deiner Aussage: "Wer in C# mit Pointern arbeiten will, kann das weiterhin tun. Man kann eine Methode Problemlos als unsaved Code markieren. Somit sind wieder alle sauereien die in C/C++ zugelassen sind erlaubt." hätte ich noch ne kleine Frage. Schonmal die STL verwendet?
Wenn C# so super und schnell ist, warum ist dann Windows immer so langsam? Womit wird Windows programmiert? Oder haben die da nur hunderte von Warteschleifen eingebaut? Warum benötigt eine neuere Version immer um hunderte MB mehr Speicher? Den Vorteil, den ich bei C und C++ sehe ist, dass er verschiedenste Firmen gibt, die einen Compiler erzeugen. Bei C# ist es nur eine und diese kann nach belieben die Syntax ändern wie ihr beliebt. Und wer garantiert einem, dass das entwickelte Progamm nach einer Entwicklungszeit von 2 Jahren sich auf dem neueste C#-Compiler überhaupt noch ohne Probleme kompilieren lässt?
Hab in C# mal ein Miniprogramm geschrieben. War nur ein Dialogfenster mit einem Button. Beim Blick in Taskmanager-Prozesse ist mir fast übel geworden, als ich gesehen habe, wieviel Megabyte dieses pissiges Programm allokierte. @mario >Wenn C# so super und schnell ist, warum ist dann Windows immer >so langsam? Womit wird Windows programmiert? Wie meinst du das, inwiefern ist Windows langsam?
>Womit wird Windows programmiert? mit JavaScript.LOL Natürlich mit C.Windows ist gar nicht so langsam wie manche denken. Ich hoffe nur das der C#.NET-Krempel für MS-Sklaven sich nicht unter Linux (wegen dem mono) ausbreitet. Egal ob dieses .NET-Zeug stabil und sicher ist, es ist böse und: >man begiebt sich immer weiter in die Fänge von Microsoft.
Ich finde es immer sehr schade, dass ein neues Betriebssystem immer so viel mehr Resourcen benötigt. Wenn man sich z.B. ein Win95 anschaut läuft es viel schneller als ein WinXP. Ich habe immer das Gefühl, es wird mit aller Gewalt versucht den Rechner um jeden Preis zu bremsen. Ein schnellerer Rechner mit einem neuen Betriebssystem läuft genauso schnell wie ein älterer Rechner mit einem älteren Betriebssystem. Ich bin mir außerdem sicher, dass man nicht ständig ein neues Betriebssystem nötig wäre. Ich glaube, wenn das Betriebssystem einem durchdachten Grundkonzept unterliegt, und nicht ständig irgendwelche Schranken ignoriert werden (z.B. Die Festplattengrenzen mussten in der Vergangenheit immer wieder neu definiert werden.) würden, müsste man eigentlich mit Updates auskommen. Z.B. das Amigabtriebssystem V1.3 aus dem Jahr 1987 kann bereits eine 2GB Festplatte ansprechen. Wenn ich an die Amigahardware denke kommen mir sowieso die Tränen. Hier war z.B. auch das ganze Diskettenmanagement viel besser. Wenn man dort eine Diskette einlegte, ist nicht plötzlich das ganze System zum Stillstand gekommen. Was ist denn heute, man kann den schnellsten PC-Rechner haben, wenn man eine Diskette einlegt und das Directory abfragt, dann sollte man keine Zeitkritischen Anwendungen laufen haben, denn das System ist für einige Sekunden nicht mehr ansprechbar. Jetzt könnte man damit argumentieren, ja Disketten benutzt man doch heute nicht mehr. Das ist natürlich richtig, aber dassselbe Problem besteht bei den CDROM-Laufwerken. Ein Einlegen der CD führt hier kurzzeitig zu einem enormen Abfall der Rechenleistung. Für mich ist das schlichtweg Pfusch und nichts anderes.
@Mario Das mit der Resourcenverschwendung ist wirklich krass bei Windows XP. Ich hab vor einem Monat bei einem Freund ein Apple Notebook mit 400 MHz und 256MB RAM gesehen, auf dem Mac OS 10.irgendwas lief. Echt erstaunlich, wie schnell sich das System anfühlt. Mein Dell Inspiron 8200 mit 1.4 GHz und 256MB ist unter Windows XP praktisch nicht verwendbar und mit 512MB immer noch arschlangsam.
Das wird hier zwar zunehmender OT, aber trotzdem: @Mario: Das liegt nicht an XP. Das kann mit der von Dir geschilderten Ausstattung durchaus akzeptabel laufen. Vermutlich hast Du irgendwelche Zusatzsoftware installiert, die das ganze zäh wie Melasse macht. Ich tippe auf Virenscanner oder Superpakete wie "Norton Internet Security". Die zwingen auch ganz andere Systeme in den Stillstand. Ein sauber installiertes XP-System ist auch auf einem 500 MHz pIII nutzbar, sofern der nur genügend Arbeitsspeicher hat (also mehr als 128 MByte). Ich habe vier Jahre lang mit einem Inspiron 8000 mit 600/500 MHz pIII gearbeitet.
Hi. Vom Virenscanner oder Zusatzsoftware rede ich erst gar nicht. Wenn man den Norton Virenscanner installiert, kann man die Rechnerleistung danach mindestens durch 2 teilen. Hab mal spaßhalber den Support angerufen und gefragt, warum das System so langsam wird, wenn man ihr Produkt, den Norton Virenscanner installiert. Die haben geantwortet, dass ihnen das bis jetzt noch nicht aufgefallen ist. Bin neugierig wie schnell das System mit dem Virenscanner dann läuft, wenn es ihnen mal auffällt. @Ein sauber installiertes XP-System ist auch auf einem 500 MHz pIII nutzbar, sofern der nur genügend Arbeitsspeicher hat (also mehr als 128 MByte). Das kann schon sein. Aber ich bezeichne ein sauberes System, als ein System, wo nur Windows XP drauf ist und sonst nichts. Wenn ich mein System sauber aufsetzte und immer mehr Programme draufspiele wird es immer langsamer. Auch wenn kein Virenscanner oder irgendwelche andere Software wie Zone-Alarm oder so installiert wird. Ich kann mir nicht vorstellen, dass dies bei all den anderen Computerbenutzern anders ist. Zudem verschwendet WindowsXP hunderte MB an Festplattenspeicherplatz, indem es das Servverhalten aufzeichnet und die Homepages auf die Platte transferiert. Zusätzlich werden irgendwelche Indexdateien angelegt (auch im Bereich 100MB), damit angeblich die Festplatte schneller durchsucht werden kann.
"Zudem verschwendet WindowsXP hunderte MB an Festplattenspeicherplatz, indem es das Servverhalten aufzeichnet und die Homepages auf die Platte transferiert." Das macht nicht XP, sondern Dein Webbrowser. Selbst beim IE kann man das abschalten. Auch die Index-Erzeugung kann man abschalten. Zugegeben, man muss bei XP ziemlich viel abschalten, bevor es sich anständig verhält, aber immerhin: Es geht. Da es noch ein Weilchen dauern wird, bis Mac OS/x86 verfügbar ist, müssen wir uns eben noch gedulden.
Hi @Mario Zumindest der Windows Kern ist reines C. 95% der Applikationen sind heute wohl noch in C++ geschrieben. >Den Vorteil, den ich bei C und C++ sehe ist, dass er verschiedenste >Firmen gibt, die einen Compiler erzeugen. nuhr Es gibt den C#-Compiler von Microsoft und es gibt den C#-Compiler aus dem mono-Projekt. Das sind dann schonmal zwei. >Bei C# ist es nur eine und diese kann nach belieben die Syntax ändern >wie ihr beliebt. nuhr C++ ist standardisiert durch die ISO. C# ist standardisiert durch die ISO. >Und wer garantiert einem, dass das entwickelte Progamm nach einer >Entwicklungszeit von 2 Jahren sich auf dem neueste C#-Compiler >überhaupt noch ohne Probleme kompilieren lässt? Wenn man ein Projekt beginnt nimmt man üblicherweise einen Compiler her und ändert die Version eben diesen nicht mehr. Selbiges gilt für die Runtime. Da das ganze aber standardisiert ist sehe ich da keine Gefahr. Der Speicherverbrauch von .net-Programmen hat einen Sockel der durch die zusätzliche Runtime die mitgeladen werden muß verursacht wird. Danach wächst der Speicherverbrauch auch nicht viel schneller als bei einer in Maschinencode übersetzten Sprache. Für den Programmcode wächst der Speicherverbrauch sogar langsamer bei komplexeren Programmen da die IL-ASM Befehle mächtiger sind als ein ASM-Befehl für die Maschine. BTW: Mein XP hat mitlerweile 4 Jahre und zwei Mainboard- und Prozessorwechsel hinter sich. Booten dauert etwas aber das System ist nicht wirklich schneller als das parallel installierte immer nur ein paar Wochen alte Versuchs-XP. Ich bin weiß Gott kein M$ Fanboy aber das ein oder andere hat diese Firma auch ganz gut hinbekommen. WindowsXP ist ordentlich stabil solange nicht irgendwelche fremden Hardwaretreiber daher kommen und die Stabilität versauen. Treiber laufen unter XP eben mit Systemrechten und wenn ein Treiber mal Mist macht dann leidet gleich das ganze System darunter. VisualStudio und dessen Debugger ist wohl das Beste was man zur Anwendungsentwicklung bekommen kann. Word ist dagegen eher mieß im Vergleich zu OOo. Matthias
@Matthias: Zumindest Deinem letzten Absatz stimme ich ganzheitlich zu. Dein vorletzter Absatz entält vermutlich einen Fehler (das alte XP ist nicht wirklich schneller (?) als das Versuchs-XP).
------------- VisualStudio und dessen Debugger ist wohl das Beste was man zur Anwendungsentwicklung bekommen kann. ----------- aber nur das studio6 ;) beim .net bekomm ich die kriese allein schon wegen den geänderten shortcuts...und ich "darf" auf beiden programmieren !! 73
> beim .net bekomm ich die kriese allein schon wegen den geänderten > shortcuts... Extras -> Optionen -> Umgebung -> Tastatur, dann in der ComboBox "Tastaturzuordnungschema" die Option "Visual C++ 6" wählen. Ich verwende den ollen 6er jedenfalls nur noch, wenn man mich zwingt.
@Wenn man ein Projekt beginnt nimmt man üblicherweise einen Compiler her und ändert die Version eben diesen nicht mehr. Selbiges gilt für die Runtime. Da das ganze aber standardisiert ist sehe ich da keine Gefahr. Ich sehe hier sehr wohl Gefahren. Und wenn man auf ein neues Betriebssystem umsteigt, wer garantiert mir, dass der alte Compiler dort noch läuft? Nun könnte man natürlich argumentieren, das Betriebssystem nicht zu wechseln. Nur ist man durch z.B. neue Hardware oder neue Programme, die nur auf dem neuen System laufen dazu gezwungen. Und wenn ich zwischendurch ein anderes Projekt beginne und den neuen Compiler verwenden will, wer garantiert mir, dass ich den alten nicht vorher deinstallieren muss? Wer garantiert mir, dass sich der alte und der neue Compiler auf einer Festplatte vertragen? Dann muss ich extra einen Rechner kaufen auf dem der alte Compiler draufkommt, da ich sonst beim alten Projekt nichts mehr verändern kann. Sehr intelligent.
"WindowsXP ist ordentlich stabil solange nicht irgendwelche fremden Hardwaretreiber daher kommen und die Stabilität versauen. Treiber laufen unter XP eben mit Systemrechten und wenn ein Treiber mal Mist macht dann leidet gleich das ganze System darunter." Naja, seit Microsoft die Graphikkartentreiber mit NT4.0 aus der Anwenderschicht in den Ring0 transferiert hat, weil sie es anders mit der Performance nicht gebacken bekommen haben, ist es mit der Stabilität so eine Sache... Ein schlechter Graphiktreiber darf nicht ein (Server-)Betriebssystem lahmlegen, unter Windows ist das leider Realität. "VisualStudio und dessen Debugger ist wohl das Beste was man zur Anwendungsentwicklung bekommen kann." Gilt aber auch erst, seitdem IBM sein Visual Age mit der exzellenten Klassenbibliothek eingestellt hat. Das Studio samt MFC ist Lichtjahre entfernt von einem Studio6...
Hallo, um noch mal auf die eigentliche Frage einzugehen: Hier http://www.florian-leitner.de/index.php/2007/08/03/hid-usb-driver-library/ gibt es eine Library geschrieben in C# die du entweder in direkt dein Projekt integrieren kannst (da Open Source) oder als DLL einbinden. Grüße Florian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.