Amperemeter mit GDIPlus DLL

  • Ich hatte bisher immer die Amperemeter für einige meiner Programme rein mittels AutoIt und der GDIPlus-UDF gezeichnet, das war mir aber zu langsam, deshalb habe ich beschlossen das ganze in eine DLL auszulagern und es lief wie erwartet bedeutend schneller.
    Ich habe 2 Arten von Amperemetern erstellt, einmal zeichne ich direkt auf die Gui, das zweite Mal erstelle ich ein Pic-Control und setze dort das Bitmap. Das zweite hat den Vorteil, das man sich um nichts zu kümmern braucht, was das Neuzeichnen angeht, wenn ein Fenster drübergeschoben wird, allerdings flackert es, wenn man es zu oft updatet.
    Das erste kann man so oft wie nur irgendmöglich updaten und es flackert dank Backbuffer nicht.

    Ich hoffe es kann jemand brauchen, darum teile ich es nun mit euch. C++-Source und AutoIt-Beispiel ist dabei.

  • Ich hatte bisher immer die Amperemeter für einige meiner Programme rein mittels AutoIt und der GDIPlus-UDF gezeichnet, das war mir aber zu langsam, deshalb habe ich beschlossen das ganze in eine DLL auszulagern und es lief wie erwartet bedeutend schneller.
    Ich habe 2 Arten von Amperemetern erstellt, einmal zeichne ich direkt auf die Gui, das zweite Mal erstelle ich ein Pic-Control und setze dort das Bitmap. Das zweite hat den Vorteil, das man sich um nichts zu kümmern braucht, was das Neuzeichnen angeht, wenn ein Fenster drübergeschoben wird, allerdings flackert es, wenn man es zu oft updatet.
    Das erste kann man so oft wie nur irgendmöglich updaten und es flackert dank Backbuffer nicht.

    Ich hoffe es kann jemand brauchen, darum teile ich es nun mit euch. C++-Source und AutoIt-Beispiel ist dabei.


    Was meinst du mit "zu langsam"? Um wie viel es ist zu langsam? Mein Visualizer arbeitet eigentlich mit "ordentlicher" Performance, wobei der Hauptcode von 2009 ist und somit noch genug Raum zum Tunen hat!

    Ansonsten möchte ich irgend wann mal C/C++ lernen und bin um jeden Source Code dankbar.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Zu langsam bedeutet, dass wenn ich 20 Amperemeter habe, dass mind. 200ms dauert. Und dass war mir einfach zu langsam.
    Der originale AutoIt-Code, denn ich verwendet habe, kommt deinem Visualizer ziemlich nahe, hab das damals nämlich für meine Zwecke umgebaut. :D
    Ich hoffe du hast da nichts dagegen (auch wenn's schon zu spät ist), aber dafür bekommst du ja auch wieder etwas zurück.
    Ich habe mir C/C++ erst vor kurzem über eine PDF selbst beigebracht. Ich finde es immer leichter, je länger und öfter ich das mache.
    Langsam Schritt für Schritt entferne ich die Bremsen aus meinen AutoIt-Skripten und ersetze diese mit DLLs oder Exe-Dateien.

  • Aha, 20 Amperemeter! Ich wüsste nicht, was ich alles anzeigen sollte, aber da hast du recht - bei einem ist AutoIt "schnell" genug.

    Wenn ich was dagegen hätte, würde ich nie den Source Code veröffentlichen und abgesehen davon muss niemand um Erlaubnis für die veröffentlichten Codes fragen :!:

    Ich habe mir schon VS2010 installiert, aber das Monster zu bedienen ist eine Sache, die andere ein simples "Hello World" hinzugekommen. 8|

    Eigene DLLs per Memory Calls in das AutoIt Skript einzubauen ist eine feine Sache. Keine Ahnung, was man mit dem Inline C++ alles anstellen kann, so dass du den Weg über die ext. DLL nicht gehen musst.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Das ganze lässt sich unter "RunScript x86" starten, unter 64 allerdings nicht.
    Ne Idee woran das liegt ?
    Also - Das Expample.
    2. Woher nimmt der die Ampere-Werte ?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal