1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Marthog

Beiträge von Marthog

  • AutoIt Array Speicherfresser?????

    • Marthog
    • 19. Juli 2012 um 10:53

    Dazu muss man sagen, dass AutoIt immer ein paar Byte zusätzlich alloziiert, damit noch Platz für weitere Zeichen ist und nicht beim Anhängen z.B. eines weiteren Zeichens gleich neuer Speicher alloziiert werden muss.

    EDIT:

    Zitat von progandy

    Lass mal das laufen: Ich weiß jetzt nicht, ob das ein Bug oder ein Feature ist, aber der Variableninhalt wird nicht mehr gelöscht bei der Redeklaration.

    [autoit]

    For $i = 1 To 200
    Local $var
    $var &= "x"
    ConsoleWrite(StringLen($var)
    Next

    [/autoit]

    Das ist ein Feature und wird im Manual erwähnt bei "Language Reference">"Variables">"Scope". Es gibt nur den zwei scopes: Global und in Funktionen, während bei anderen Programmiersprachen oft jeder Block einen eigenen scope hat.
    Ich finde das ungünstig, denn es ist eine zusätzliche Fehlerquelle, da man in Funktionen globale Variablen deklarieren kann, und man außerhalb der Funktion nicht sicher sein kann, ob die Variable überhaupt existiert.

    Außnahme von der Regelung sind die Laufvariablen von for-loops.

  • Ein Script, 2 Optionen, 7 Tage ???

    • Marthog
    • 25. Juni 2012 um 11:08

    Schau dir mal die UDF Date.au3 an (in der Hilfe unter "User Defined Functions" und "Date Management"). Da sind die Funktionen zum Auslesen der Zeit drin.

  • HQx, EPx, xBR... Grafikinterpolation !

    • Marthog
    • 18. Juni 2012 um 12:03
    Zitat von Andy


    Das sollte sich per inline-asm in den C++-Code reinbringen lassen^^

    Dann muss man aber die ganze Schleife, die das Bild konvertiert, in assembler schreiben.
    Da der Compiler bei inline-assembler nicht weiß, wie er den Code davor und danach optimieren darf, geht oft Geschwindigkeit verloren. Für so kleine Funktionen lohnt sich das oft nicht.

  • Multithreading

    • Marthog
    • 17. Juni 2012 um 21:34

    Mach eine Schleife und arbeite darin beide ab.

  • An Fkt. übergebenen Parameter auf 2 Bytes splitten

    • Marthog
    • 17. Juni 2012 um 20:10

    Du kannst integer nicht binär schreiben. Verwende Hexadezimal.

  • An Fkt. übergebenen Parameter auf 2 Bytes splitten

    • Marthog
    • 17. Juni 2012 um 20:08

    So schlimm ist das mit zwei Parametern doch nicht.
    Wenn du aber unbedingt einen haben willst, würde ich das so machen:

    Spoiler anzeigen
    Code
    union RegisterData
    {
    	struct
    	{
    		byte b1;
    		byte b2;
    	};
    	short s;
    
    
    	RegisterData()
    		: s(0)
    	{
    	}
    	RegisterData(byte _b1, byte _b2)
    		: b1(_b1), b2(_b2)
    	{
    	}
    	explicit RegisterData(short _s)
    		: s(_s)
    	{
    	}
    	RegisterData(RegisterData other)
    		: s(other.s)
    	{
    	}
    };
    Alles anzeigen

    Dann hast du das Object RegisterData. Du kannst auf die beiden Bytes gemeinsam zugreifen (als 16-bit integer) oder einzeln.
    Desweitern hast du mehrere Konstruktoren, sodass du zum Erzeugen eines neuen Objektes

    Code
    RegisterData variablenname(byte_1, byte_2)


    oder

    Code
    RegisterData variablenname(16_bit_variable)


    schreiben kannst und die Bytes bei Verwendung keines Konstruktors automatisch auf 0 gesetzt werden.

  • HQx, EPx, xBR... Grafikinterpolation !

    • Marthog
    • 17. Juni 2012 um 17:25

    Die DLL-Funktionen sind als cdecl deklariert. Beim DllCall musst du :cdecl hinter den Rückgabetyp hängen, also z.b. "none:cdecl".

    EDIT: Bei flags muss für das Bildformat mit R8G8B8 (8 bit pro Farbe) 0x1000 hin.

  • eigene *.dll mit autoit schreiben??

    • Marthog
    • 15. Juni 2012 um 10:40

    Dabei schreibt man keine DLL. Es wurde lediglich eine stark reduzierte DLL im Skript abgespeichert und diese wird bei Funktionsaufruuf abgespeichert und die Resourcen werden hinzugefügt.

  • eigene *.dll mit autoit schreiben??

    • Marthog
    • 15. Juni 2012 um 00:27
    Zitat von RR04

    Funkey hat ein Programm geschrieben mit dem eine DLL mit Autoit erstellt werden kann (siehe Zitat: Deine Vorgaben)! ;)
    CreateResourceDLL

    Es ging hierbei aber nicht darum, eine DLL für Resourcen zu generieren, sondern eine DLL zu schreiben, die ihre Hauptaufgabe erfüllt: Funktionen exportieren.

  • Zufallszahlen?

    • Marthog
    • 14. Juni 2012 um 21:08

    Es gibt dafür Formeln, diese generieren aber nur Pseudo-zufallszahlen. AutoIt nutzt den Mersenne-Twister.

    Als seed (sowas, wie ein Startwert) nutzt man oft die Millisekundenzahl.

  • [Tutorial] Sauber Programmieren

    • Marthog
    • 4. Juni 2012 um 18:22

    Die Benennung der Variablennamen kann ich so nicht unterstützen, da ein guter Name den Typ bereits deutlich machen kann, z.B. wird die Variable $kosten wohl ein Integer/Float sein, und die ganzen zusätzliche Zeichen machen den Code auch nicht leichter lesbar.

  • [Lazarus]

    • Marthog
    • 1. Juni 2012 um 23:23
    Zitat von meyermeyer11


    P.S: Der Editor sieht fast genau so aus wie der von Koda :D :D :D

    Nein. Koda sieht fast genau so aus, wie der Editor von Borland für Pascal und alle ähnlichen Sprachen (Delphi, Lazarus, ...).

  • [Q][OpenGL] Licht Einstellung

    • Marthog
    • 4. Mai 2012 um 20:32

    Es reicht ein directional Light.

  • Wer steigt auf Windows 8 um?

    • Marthog
    • 30. April 2012 um 00:31

    Mein PC läuft seit drei Jahren und ist vollkommen in Ordnung. Never touch a running system.

  • fakultätsproblem

    • Marthog
    • 11. April 2012 um 17:52
    Zitat von N0THING

    Ich hätte einfach ein .0 ergänzt in der Rekursion-Variante.

    Dann rechnet man mit Floats. Für das Ergebnis ist das egal.

  • fakultätsproblem

    • Marthog
    • 11. April 2012 um 17:02
    Zitat von name22

    Das liegt wohl daran. AutoIt verwendet (glaube ich) 32-bit signed integer. Dadurch ist das erste Bit für das Vorzeichen reserviert und man kann maximal Zahlen von −2.147.483.648 bis 2.147.483.648 speichern. Was bei 10000000000000000 genau passiert weiß ich nicht. Die Bignum UDF in James Post hat aber diese Probleme nicht.

    Nein. AutoIt verwendet die größten Grenzen, die Microsoft Visual C++ zulässt. Das sind 64-bit Integer und 64-bit Floats.

    10000000000000000*10000000000000000 hat aber 107 bits.

  • .exe verbinden?

    • Marthog
    • 27. Februar 2012 um 16:38
    Zitat von Christoph54

    Sorry aber das klingt für mich viel zu sehr nach einem Virus!

    Wieso? Ich kann da nichts ungewöhnlich verdächtiges erkennen.

  • Vereinfachte Klasse für Zeichnen in 2D (OpenGL)

    • Marthog
    • 14. Februar 2012 um 17:07

    Anstatt Strings als Parameter solltest du enums verwenden. Dabei schleichen sich weniger Fehler ein und es ist schneller.

  • FASM Basepointer Problem

    • Marthog
    • 13. Februar 2012 um 21:19
    Zitat von Andy


    Stack muss man also selbst aufräumen^^

    Nicht unbedingt. DllCallAddress funktioniert wie ein DllCall. Normalerweise wird stdcall verwendet (Routine räumt Stack selber auf). Man kann auch cdecl verwenden (Als ReturnType z.B. "int:cdecl"). Dann wird der Stack vom Aufrufer leergeräumt. Ein Vorteil der cdecl-Methode ist, dass man eine variable Parameteranzahl übergeben kann, wie z.B. bei printf in C.

  • Objekt Return wert

    • Marthog
    • 13. Februar 2012 um 19:42

    Du musst das Objekt erst noch erstellen (z.B. mi ObjCreate) Die Variable $pObj ist noch leer.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™