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

  • Nutzt ihr die Deutsche Hilfe von AutoIt?

    • Marthog
    • 15. Dezember 2013 um 14:48

    Alles was mit programmieren zu tun hat (außer Foren) mach ich auf englisch, also auch die Dokumentation. Ich komme auch mit deutschem Text, der englische Fachwörter enthält nur schwer klar.

  • komplexe Zahlen (UDF)

    • Marthog
    • 8. Dezember 2013 um 14:10

    Ich finde, dass die (oder eine andere) UDF für komplexe Zahlen in die standard-UDFs aufgenommen werden sollte. Man braucht sie zwar nicht häufig, aber dennoch sind die komplexen Zahlen so grundlegend, dass eine Sprache sie haben sollte.

  • Weihnachtsmützen für euer Avatar !

    • Marthog
    • 3. Dezember 2013 um 23:20

    Ich finde, dass mein Avatar bereits genug nach Weihnachtsmütze aussieht, zumindest die Farben stimmen schon.

  • Steam Box - Was meint ihr dazu?

    • Marthog
    • 2. Dezember 2013 um 18:50

    Da Valve's Konsole ja mit Linux laufen soll und man vermutlich weiterhin seine Steam-spiele dort auch spielen kann, sehe ich große Vorteile nicht nur als Konsole, sondern auch für Linux als Spieleplattform, denn ich bin ein großer Befürworter der aktuellen Linux-Orientierung. Wenn Spiele erstmal OpenGL verwenden, ist die weitere Portierung nicht mehr schwer.

  • FileInstall() in c++

    • Marthog
    • 1. Dezember 2013 um 17:00
    Zitat von Sprenger120

    Hi,
    entweder du packst die Datei als char Array in deinem Code ab (was den Speicherbedarf verdreifacht) oder du hängst sie hinten an die fertige Anwendung an und liest dann aus.

    Warum verdreifacht? Der Code selber hat etwas über die doppelte Größe, aber bei der fertigen exe sollte es doch die gleiche größe wie vorher sein. Die Beste möglichkeit ist wahrscheinlich die resource.

  • Programmier Sprache lernen

    • Marthog
    • 20. November 2013 um 18:02
    Zitat von rynow

    Schnitzel
    Am meisten Spaß macht mir das entwickeln von nutzerfreundlichen Oberflächen. Ich möchte Desktop sowie auch Webapplikation entwickeln. Den großen Unterschied zwischen objektorientiert oder funktional habe ich bis heute nicht ganz begriffen, aber ich denke das versteht man, wenn man aktiv damit arbeitet.

    Prozedural (ich denke, das meinst du mit funktional) programmiert man, indem man Code in Funktionen auslagert und sich diese gegenseitig aufrufen.

    Bei Objektorientiert baut man die Datenstruktur (NICHT die Algorithmen) mit Objekten nach. Das klassische Beispiel ist ein GUI. Jeder Element ist ein Objekt, enthält seine Daten (Text, Farbe), es gibt ein allgemeines Element und davon viele Spezialisierungen, die teilweise die gleichen Funktionsweise haben (kann man den Text ändern), in anderen Punkten aber anders sind, denn einen Button kann der User klicken, in ein Edit schreiben. Jedes dieser Elemente hat wieder Unterelemente.
    Es gibt ein einheitliches Interface, dass in viele richtungen spezialisiert werden kann. Es ist wesentlich übersichtlicher, als das gleiche mit if oder Funktionspointern zu realisieren.

    Funktional gibt es auch, ist aber ganz anders, denn während prozedural und objektorientiert eine Liste von Anweisungen enthält und Daten mit Zustandsänderungen bearbeitet, besteht funktionale Programmierung aus einer Verkettung von Funktionen. Es ist mathematisch sehr interessant, denn man kann seine Formeln viel einfacher übertragen und einfacher Beweise durchführen.

  • AutoItC

    • Marthog
    • 20. November 2013 um 17:38

    Ja. Du musst auch mit der Option -std=c++11 compilen.

  • Programmier Sprache lernen

    • Marthog
    • 19. November 2013 um 22:29

    C ist sehr einfach, aber auch sehr low-level, also fehleranfällig. Die Wahrscheinlichkeit für MemoryLeaks ist hier am höchsten. Man muss halt alles selber machen und wenn man String oder Array kopieren will, dann muss man auch Element für Element kopieren. Wenn man Speicher reserviert, dann muss man den selber aufräumen. C ist aber gut geeignet um kompakte Algorithmen sehr effizient zu lösen. Ich finde, dass jeder Programmierer C kennen sollte.

    C++ ist eine sehr schwer zu lernende Sprache, die es aber erlaubt, große Projekte übersichtlich, sicher und schnell zu entwickeln. Sie verleitet aber dazu, unsicher und unübersichtlich zu schreiben, u.A. weil die meisten Buchautoren keine Ahnung von modernem C++ haben. (*hust*)
    C++-ähnliche Sprachen sind D, Java und C# und Vala. Java ist weit verbreitet, hat aber nach meiner Ansicht viele Nachteile und Unsauberkeiten. D sollte das neue und bessere C++ werden und hat es fast geschafft, wäre da nicht ein echt schlimmer Designfehler eingetreten. C# gefällt mir ganz gut, ebenso Vala (mittelding zwischen C und C#), allerdings heißt es wie immer, eine Programmiersprache ist so lange gut, bis man sie kennt. Wenn man einen Garbage-collector akzeptieren will und mit der geringen Akzeptanz klar kommt, rate ich zu D.

    Python ist auch toll, sollte meiner Meinung nach jeder ein bisschen können, denn diese Sprache ist sehr übersichtlich, modern und dynamisch.
    Eine funktionale Programmiersprache (z.B. Haskell) sollte man sich irgendwann mal anschauen, wenn man schon gut programmieren kann, denn hierbei lernt man neue Wege, die einem helfen, sauberen Code in anderen Sprachen zu schreiben.

    Von Objective-C und php kann ich abraten, sie sind eher Krankheiten als Programmiersprachen, und auch wenn php noch sehr wichtig ist, wird es wohl (hoffentlich) bald durch Python oder etwas anderes abgelöst werden.

  • AutoItC

    • Marthog
    • 19. November 2013 um 20:28

    So richtig verwenden kann man die noch nicht. Am Programm wird bisher nur entwickelt und getestet.

    Du musst schon einen C++11-fähigen Compiler (gcc oder clang aber nicht Visual Studio) verwenden. Erst compilest du AutoItParser (sollte nichts weiter benötigen), damit kann man die Skripte übersetzen. Aus Testgründen habe ich die Commandlineparameter deaktiviert bzw. nichtmal vollständig implementiert, standardmäßig wird von der Datei in.au3 ausgelesen und in out.cpp geschrieben.
    Der zweite Teil ist die runtime-library. Dazu musst du AutoItC compilen und zwar mit den benötigten libraries (das CodeBlock-Projekt sollte alle enthalten). Auch hier wird aus Testgründen erstmal alles in ein funktionsfähiges Programm compiled, dazu muss man von AutoItParser/out.cpp nach AutoItC/AutoIt.cpp kopieren und im debug-mode compilen. Das ist zwar umständlich, aber bisher habe ich an Parser und Programm einzeln gearbeitet und sie einzeln getestet.

  • AutoItC

    • Marthog
    • 14. November 2013 um 21:43

    Ich würde es doch ein bisschen anders machen, so ähnlich wie in C++ mit der STL. Die library ist nach außen hin immer gleich und in völlig standardkonformen C++, aber intern wird mit Spezialisierungen, Tricks, inline-Assembler, Magie und compilerspezifischen Built-in-Functions die größtmögliche Geschwindigkeit herausgeholt.
    Für den Anwender macht es dann keinen Unterschied, denn er hat genau das gleiche Interface, aber wesentlich mehr Geschwindigkeit. Eine Dll braucht man auch nicht, denn alles wird direkt in den Code eingebunden oder statisch gelinkt.

  • AutoItC

    • Marthog
    • 14. November 2013 um 20:50
    Zitat von F4R


    Ich finde diese Idee richtig Gut , :thumbup: werden GDIPlus etc. auch enthalten sein ?
    Wenn ja wäre das eine richtig feine Sache da Autoit nicht sehr Systhem nah ist und damit wäre das Problem mit der Leistung ja gelöst?

    Ich plane, alle Grundfunktionalitäten (außer Execute und ExitLoop mit variablem scope) auch zu unterstützen, sodass man GDIPlus ebenfalls einsetzen kann. Allerdings glaube ich kaum, dass der Geschwindigkeitsgewinn wirklich so enorm wird, denn während C++ ein statisches Typsystem hat, kennt AutoIt nur den Typ Variant, dessen wirkliche Typen zur Laufzeit bestimmt werden. Dadurch muss andauernd der Typ bestimmt und ggf. umgewandelt werden. Außerdem ist DllCall als Funktion speziell implementiert und bei jedem Aufruf muss erstmal die Funktion in der Dll gesucht, die Datentypen ausgewertet werden etc.
    Ich plane für später neben etlichen anderen Features und Optimierungen auch noch ein Plugin-System, sodass man für UDFs einfach noch eine spezialisierte Version schreiben kann, die direkt auf C++-Ebene arbeitet, aber für den Nutzer keinen unterschied macht.
    Erstmal gilt aber, dass die Sprache verwendbar sein muss, also die Grundfunktionalität genauso wie in AutoIt sein soll, vorher lohnen sich solche Spielereien noch gar nicht.

  • AutoItC

    • Marthog
    • 13. November 2013 um 23:25

    Es gibt eine neue Version und ich suche Mitarbeiter für das Projekt.

  • Perseus 2.6 - Caffeinated Cat

    • Marthog
    • 29. Oktober 2013 um 17:28
    Zitat von TheShadowAE
    ganze funcLib
    Code
    int GetProcessHeap() external KERNEL32;
    void @HeapAlloc(int heap; int flags; word bytes) external KERNEL32;
    word HeapFree(int heap; int flags; void @ptr) external KERNEL32;
    void @HeapReAlloc(int heap; int flags; void @ptr; word newsize) external KERNEL32;
    
    
    
    
    
    
    void @new(word bytes)
    	return @HeapAlloc(GetProcessHeap(),0,bytes);
    end
    
    
    void @renew(void @ptr; word bytes)
    	return @HeapReAlloc(GetProcessHeap(),0,@ptr,bytes);
    end
    
    
    void free(void @ptr)
    	HeapFree(GetProcessHeap(),0,@ptr);
    end
    
    
    
    
    
    
    word StringIsAlpha(char Ch)
       if ('A' <= Ch & Ch <= 'Z') | ('A' <= Ch & Ch <= 'Z') | (Ch = '_') then
          return 0;
       end
    
       return 1;
    end
    
    
    word CharIsDigit(char Ch)
       if ('0' <= Ch & Ch <= '9') | (Ch = '$') then
          return 0;
       end
    
    
       return 1;
    end
    
    
    word StringLength(char @St)
       word P = 0;
       while St[P] != #0 do
          inc P;
       end
    
    
       return P;
    end
    
    
    word StringCompare(char @St1, @St2)
       word P = 0;
       while St1[P] = St2[P] do
          if St1[P] = #0 then
             return 0;
          end
          inc P;
       end
    
    
       return 1;
    end
    
    
    char @StringCopy(char @Dst, @Src)
       word P = 0;
       while Src[P] != #0 do
          Dst[P] = Src[P];
          inc P;
       end
       Dst[P] = #0;
    
    
       return @Dst;
    end
    
    
    char @StringJoin(char @Dst, @Src)
       StringCopy(@Dst[StringLength(@Dst)], @Src);
       return @Dst;
    end
    
    
    [...]
    Alles anzeigen

    Ich empfehle, die Funktionen für StringCopy, StringCompare, etc nicht selber zu schreiben, sondern das kompilierte Programm gegen eine crt0-Implementierung zu linken. crt0 ist die Standardlibrary von C und enthält u.A. hochoptimierte Versionen für strcpy und außerdem malloc, das manchmal etwas effektiver ist, als HeadAlloc, etc.

  • Infinite Darkness [Game][AutoIt][BASS][IrrLicht][Multiplayer]

    • Marthog
    • 11. Oktober 2013 um 22:29

    Ich würde grundsätzlich erstmal einen Singleplayer bauen, denn meiner Meinung nach braucht jedes Spiel einen Singleplayer außer MMOs. Wenn es ein reines Survivalspiel werden soll, warum braucht man dann überhaupt eine Kampagne? Man spielt einfach los und muss irgendwie mit verschiedenen zufälligen Ereignissen klar kommen. Nach einem normalen Singleplayer kommt dann eine LAN-Version, die man mit Freunden, denen man vertraut, spielt, sodass man keine Verschlüsselung braucht. Erst dann kommt eine richtige Serverversion.

    Ich werde beim programmieren nicht helfen, aber kann vielleicht ein bisschen erklären oder bei Performanceproblemen Lösungsansätze nennen.

  • Alles Gute für den autoit.de Betreiber

    • Marthog
    • 19. September 2013 um 14:34

    [Blockierte Grafik: http://www.worldofugly.de/ugly/1243.gif]

    [Blockierte Grafik: http://www.worldofugly.de/ugly/625.gif] + [Blockierte Grafik: http://www.worldofugly.de/ugly/653.gif]

  • Bezier UDF

    • Marthog
    • 14. September 2013 um 13:19

    Schön.

    Du könntest noch Order automatisch durch UBound selbst ermiteln und statt zwei arrays ein zweidimensionales übergeben.

    MfG, Marthog

  • AutoIt-only 3D Engine. Mit Farb-Shading, Models aus Dateien, Rotation, Zoom, uvm.

    • Marthog
    • 9. September 2013 um 11:31
    Zitat von YaeroxXO

    0 Lags, konstant 160 - 170 FPS. Sehr gute Arbeit.

    Darf ich dabei mal eine Frage stellen? Ich habe nun schon einige 3D Anwendungen hier gesehen, die allerdings immer optisch echt grausam waren für den heutigen grafischen Stand. Das man es nicht mit den Top-Spielen vergleich kann ist mir bewusst, aber dieses Beispiel wiederrum sieht sehr scharf und gut aus. Ist es nicht möglich konstant so eine geile Grafik für Spiele mit AutoIt zu halten?

    Hier werden wenige Dreiecken nur gerändert. Mit Irrlicht hätte man bestimmt 1500 FPS für die gleich komplexen Grafiken.

  • Programmiersprachen - Diskussion in Hinsicht auf Berufliche Zukunft und Anwendungsfall

    • Marthog
    • 5. September 2013 um 14:50
    Zitat von YaeroxXO

    Spieleentwickler wollte ich immer werden, aber ohne ein Privatstudium kannste das bestimmt eh knicken. Hab mich schon mit mehreren Unis unterhalten und ich weiß nicht ob das etwas für mich ist. Ich mag es nicht etwas "dummes/sinnloses" programmieren zu müssen.


    Ein Informatikstudium ist wohl eher nicht für Spieleentwickler geeignet, wobei es bestimmt auch nicht schaden kann.
    Spieleentwicklung hat seine eigenen Regeln, denn im Gegensatz zu Wissenschaften gilt da nicht "so genau und allgemein wie möglich", sondern "ähnlich aussehen in möglichst kurzer Zeit". Ein Großteil der Spieleprogrammierung im Bereich besteht darin, Illusionen zu erzeugen, die sich schnell berechnen lassen, aber nur wenig mit der Wirklichkeit zu tun haben.

    Es gibt zwar diese eine Spieleentwickler-Ausbildung und da sowie ich das gehört habe, gibt es danach quasi Jobgarantie, aber letztendlich kommt es nicht auf ein Studium an. Piranha Bytes nehmen jeden Schulabschluss an, solange Interesse und Können da ist, und ich denke, bei den anderen Entwicklern wird es ähnlich sein. Als Indie-developer ist es eh egal, hauptsache man kann's.

  • Programmiersprachen - Diskussion in Hinsicht auf Berufliche Zukunft und Anwendungsfall

    • Marthog
    • 2. September 2013 um 19:54
    Zitat von YaeroxXO

    Für mich ist es aber wichtig realitätsnah zu bleiben.


    Welches realitätsnah? Meinst du, dass du nur programmieren willst und das war es? Dann bekommst du zwar einen Job, aber nicht unbedingt gut bezahlt. Wenn man etwas kompliziertere Arbeit will, entwickelt man halt entweder Algorithmen (erstmal theoretisch und dann programmiert) oder leitet ein Projekt. Bei beiden arbeitet man auch realitätsnah, denn man bringt schließlich einen Algorithmus zu Papier, der später (von anderen oder einem selbst) implementiert wird und so ein bestimmtes Problem löst.

    Ich selber werde beim Studium als Nebenfach Bioinformatik haben und ich denke, dass man in dem Gebiet (nach der Uni) auch nicht so viel mit programmieren zu tun hat, sondern eher mit planen. Programmiersprachen lerne ich nicht gezielt (außer Haskell), sondern dann wenn ich sie brauche. Ich habe mir Grundlagen für Python angeeignet und kann jetzt gut abschätzen, wann ich das brauche und kann C++ und AutoIt gut (soweit man bei C++ von gut sprechen kann). Lua habe ich mal nebenher gelernt, weil ich es einfach für ein Projekt brauchte.

  • Programmiersprachen - Diskussion in Hinsicht auf Berufliche Zukunft und Anwendungsfall

    • Marthog
    • 2. September 2013 um 18:07
    Zitat von RR04


    hier mal eine Übersicht was gerade angesagt ist.
    http://www.tiobe.com/index.php/cont…tpci/index.html

    Diese Seite stellt aber nicht genau dar, was in der Industrie verwendet oder gefragt wird. C ist nunmal historisch gesehen die Grundlage der meisten Programmiersprachen, z.B. printf war in dieser Form, wie es auch heute noch in den meisten Programmiersprachen existiert (StringFormat in AutoIt) in C zum ersten Mal da.
    Die meisten Interfaces zwischen Funktionen sind in C, z.B. die exportierten Dll-Funktionen werden nach außen alle als C deklariert, damit sie einfach gefunden und geladen werden können, auch wen Rückgabewerte, Aufrufbedingungen etc. in C++ geschrieben ist.
    C++, GLSL, OpenCl, HLSL sind alles Abwandlungen von C und Java, C#, Objective C, D, Vala sind Abwandlungen von C++. Man kommt also um C fast nicht herum, auch wenn man in anderen Sprachen schreibt.

    Dadurch kommt es, dass C so extrem wichtig ist, aber ich bezweifel doch sehr, dass Firmen noch viel nach C-Programmierern suchen, sondern ihre Projekte mit anderen Sprachen entwickeln.

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™