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

  • Mattthias macht Winterschlaf

    • Marthog
    • 11. November 2010 um 15:26

    Wir in Schleswig-Holstein haben gar keine Leistungskurse mehr. Stattdessen gibt es Profile. Man wählt ein Profil und ein Kernfach.

    Ich hab z.B. mit 9 anderen Leuten Naturwissenschaftlich mit Physik gewält. Damit wir keine ganz kleine Klasse sind, bilden wir mit dem Gesellschaftlich-Erdkunde-Profil eine Klasse.
    Desweiteren gibt es noch eine Natutwissenschaftlich-Biologie-, eine Gesellschaftlich-WiPo-Klasse und estetisch (musik) und Sprachlich-Spanisch bilden auch eine Klasse.

    Wir haben auch kein G8.

  • High level shading language

    • Marthog
    • 10. November 2010 um 21:48

    Also wandelt der Shader die Pixel für Rot-Blau-3d-Brillen um.

    1. Kommentare werden wie in C++ mit // bzw. /* ... */ markiert
    2. #define scheint genauso zu funktionieren, wie in C. Allerdings werden diese beiden nicht gebraucht.
    3. s0 wurde nicht definiert.

  • Mattthias macht Winterschlaf

    • Marthog
    • 9. November 2010 um 08:31

    16, 11. Klasse im naturwissenschaftlichen Profil mit Physik als Kernfach.

  • Was ist die schnellste Grafik(engine) ?

    • Marthog
    • 8. November 2010 um 20:04
    Zitat von Techmix

    Also die Handhabung von der Irrlicht ist eben ganz klasse, wenn ich bedenke das man versucht mit C++ und DirectX zu Arbeiten und das alles dann iwie mit AU3 zu vertütteln... Viel Spaß!
    [...]
    Und DX ist natürlich schneller als die Irrlicht, das mußt du aber auch iwie Programmiert kriegen.


    Jep, mit der Irrlicht-engine könnte ich problemlos ein kleines Spiel erstellen, mit DirectX schaffe ich es gerade mal ein paar farbige Dreiecke anzuzeigen.


    PS: Die Irrlicht-Engine ist open-source. Du kannst den Quelltext jederzeit anschauen. Sie ist auch ganz gut dokumentiert und die Funktions- und Variablennamen sind auch sehr leicht verständlich.

  • Was ist die schnellste Grafik(engine) ?

    • Marthog
    • 8. November 2010 um 19:57

    Die Irrlicht-engine ist in C++ geschrieben und verwendet je nach Wahl DirectX 9, DirectX 8, Open GL (afaik 2.1, bin mir aber nicht sicher), Burningsvideo und einen eigenen Renderer.

    Burningsvideo eignet sich eigentlich fast nicht für 3d-Kram und der Irrlicht-renderer kann praktisch nur 2d, auch wenn es ganz wenig und total schlecht auch 3d anzeigen kann.


    Da für dich ja nur eine 2d-Engine in Frage kommt, ist das eigentlich egal, aber wenn es um 3d geht, ist DirectX 11 mit entsprechender Grafikkarte für die gleichen Effekte ca. 20% schneller als die entsprechenden Funktionen in DirectX 9 (zumindest bei meinem Test).

  • UpdateLayeredWindow und Error-Code 8

    • Marthog
    • 15. Oktober 2010 um 21:24

    Bei mir erscheint unten in der Taskleiste ein Task, aber sonst nichts.

    Wenn man das Programm beendet stürzte es vor meinen Enderungen ab, jetzt gibt der Debug-modus keine Fehler mehr aus.

  • UpdateLayeredWindow und Error-Code 8

    • Marthog
    • 15. Oktober 2010 um 20:09

    Jetzt gibt es bei mir keine Fehlermeldungen mehr. Es passiert aber auch nichts wirklich.


    Spoiler anzeigen
    C
    #pragma comment(lib, "Msimg32.lib")
    #pragma comment(lib, "GDIplus.lib")
    #include <Windows.h>
    #include <gdiplus.h>
    
    
    using namespace Gdiplus;
    
    
    #define EXStyle WS_EX_LAYERED
    
    
    
    
    
    
    //  Declare Windows procedure
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    
    // Make the class name into a global variable
    char szClassName[ ] = "WindowsApp";
    
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    
    {
        HWND hwnd;               // This is the handle for our window
        MSG messages;            // Here messages to the application are saved
        WNDCLASSEXA wincl;        // Data structure for the windowclass
    
    
        // The Window structure
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      // This function is called by windows
        wincl.style = CS_DBLCLKS;                 // Catch double-clicks
        wincl.cbSize = sizeof (WNDCLASSEX);
    
    
        // Use default icon and mouse-pointer
        wincl.hIcon = LoadIcon (NULL, IDI_WINLOGO);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 // No menu
        wincl.cbClsExtra = 0;                      // No extra bytes after the window class
        wincl.cbWndExtra = 0;                      // structure or the window instance
        //Use Windows's default color as the background of the window
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
    
        // Register the window class, and if it fails quit the program
        if (!RegisterClassExA (&wincl))
            return 0;
    
    
            int x=0;
            int y=0;
            int w=200;
            int h=200;
    
        //The class is registered, let's create the program
        hwnd = CreateWindowExA (
               EXStyle,       // Extended possibilites for variation
               szClassName,         // Classname
               "Windows App",       // Title Text
               WS_SYSMENU, // default window
               x,       // Windows decides the position
               y,       // where the window ends up on the screen
               w,                 // The programs width
               h,                 // and height in pixels
               HWND_DESKTOP,        // The window is a child-window to desktop
               NULL,                // No menu
               hThisInstance,       // Program Instance handler
               NULL                 //No Window Creation data
               );
    
        if (!hwnd)
        {
                  MessageBoxA(NULL,"Kein Fenster","Fehler",MB_OK|MB_ICONERROR);
                  exit(1);
        }
    
    
        // Make the window visible on the screen
        ShowWindow (hwnd, nFunsterStil);
     //   ShowWindow( hwnd, SW_HIDE );  // unsichtbar                                 //hier
        HDC dc=GetDC(hwnd);
        HDC cdc=CreateCompatibleDC(dc);
        POINT p;
        p.x=x;
        p.y=y;
        BLENDFUNCTION blend;
        blend.SourceConstantAlpha=255;
        blend.AlphaFormat=1;
    
        GdiplusStartupInput gdiplusStartupInput;
        ULONG_PTR           gdiplusToken;  
        GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
        Graphics* bgra = new Graphics(hwnd);
        Bitmap* bmp = new Bitmap(100,100,bgra);
        Graphics *gra=Graphics::FromImage(bmp);
        gra->Clear(Color(0,0,0,0));
        Pen* pen = new Pen(Color(255,0,255,0));
        gra->DrawLine(pen,x,y,w,h);
        HBITMAP hbmp;
        bmp->GetHBITMAP(Color(0,0,0,0),&hbmp);
        SelectObject(cdc,hbmp);
    
    
          
        SIZE sz={w,h};
        short k=UpdateLayeredWindow(hwnd,dc,NULL,&sz,cdc,&p,0,&blend,2);
        if (k==0)
        {
            DWORD error=GetLastError();
            char errz[10];
            _itoa_s(error,errz,10);
            MessageBox(NULL,errz,"UpdateLayeredWindow",MB_OK|MB_ICONERROR);
            exit(error);
        }
    
    
        // Run the message loop. It will run until GetMessage() returns 0
        while (GetMessage (&messages, NULL, 0, 0))
        {
            BitBlt(dc,0,0,100,100,cdc,0,0,SRCCOPY);
            // Translate virtual-key messages into character messages
            TranslateMessage(&messages);
            // Send message to WindowProcedure
            DispatchMessage(&messages);
        }
    
    
        delete bmp;
        delete pen;
    
    
        DeleteObject(hbmp);
        DeleteDC(cdc);
        ReleaseDC(hwnd,dc);
        GdiplusShutdown(gdiplusToken);
        // The program return-value is 0 - The value that PostQuitMessage() gave
        return messages.wParam;
    }
    
    
    
    
    // This function is called by the Windows function DispatchMessage() 
    
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  // handle the messages
        {
            case WM_CLOSE:
                 DestroyWindow(hwnd);
                 break;
            case WM_DESTROY:
                 PostQuitMessage(0);
                 break;
            default:                      // for messages that we don't deal with
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
    
        return 0;
    }
    Alles anzeigen
  • UpdateLayeredWindow und Error-Code 8

    • Marthog
    • 15. Oktober 2010 um 18:00

    Kannst du mal bitte ein bisschen mehr Code reinstellen, sodass wir das auch testen können.
    Ich hab nämlich keine Lust selber das dazugehörige GUI zu erstellen.

  • wiedereinmal komischer Fehler? - Tausenderanzeige

    • Marthog
    • 14. Oktober 2010 um 21:24

    Am Ende der Funktion wird die Variable str gelöscht. Der Destruktor gibt dabei den vorher aloziierten Arbeitsspeicher wieder frei. Das ist ganz praktisch, weil man den Speicher nicht mehr von Hand löschen muss, wie es sonst beim Heap der Fall ist.
    Bei deiner Funktion zeigt der Pointer auf den freigegebenen Arbeitsspeicher.

    Lösungsmöglichkeiten:
    1.

    Spoiler anzeigen
    Code
    std::string tausendzahl(unsigned int zahl)
    {
        char ausgabe[21];
        _itoa_s((int)zahl,ausgabe,10);
        string str=ausgabe;
        int len=str.length();
    
    
        for (int x=len-3; x>0; x-=3)
            str=str.insert(x,".");
    
    
        return str;
    }
    Alles anzeigen

    2.

    Spoiler anzeigen
    Code
    bool tausendzahl(unsigned int zahl, char* buffer, unsigned int size)
    {
        char ausgabe[21];
        _itoa_s((int)zahl,ausgabe,10);
        string str=ausgabe;
        int len=str.length();
        for (int x=len-3; x>0; x-=3)
        {
            str=str.insert(x,".");
        }
        for (int i=0; i<str.length() && i<size; ++i)
            buffer[i] = str[i];
    
    
    
    
        return (str.length()<= size);   //Gibt true zurück, wenn buffer groß genug war
    }
    Alles anzeigen
  • D3D9 Udf

    • Marthog
    • 13. Oktober 2010 um 10:24

    Nimm Blender. Man kann mit Blender auch ins *.X-Format exportieren.

  • provlem mit DLL

    • Marthog
    • 12. Oktober 2010 um 19:56

    Funktioniert das so? Wenn ja, wird die Unicode-messagebox mit ascii-Strings verwendet und da meckert der Compiler.

    Code
    #include <windows.h>
    
    
    
    
    extern "C" int __declspec(dllexport) __cdecl msgbox()
    {
       MessageBox(0, L"Hello, World!", L"Hello", 0);
       return 0;
    }
  • provlem mit DLL

    • Marthog
    • 12. Oktober 2010 um 11:09

    Setz vor die Funktion mal ein extern "C" __stdcall.

  • Endlich geschaft ;D

    • Marthog
    • 8. Oktober 2010 um 20:02

    An meiner Schule gibt es nur einen Informatiklehrer und der ist eigentlich Deutsch- und Sportlehrer und hat ne Fortbildung zum Infolehrer gemacht.
    Glücklicherweise gibt es einen Computerführerscheinkurs, der Pflicht ist. Da lernt man die wichtigen Grundlagen zum Benutzen eines PCs.


    In der 7. Klasse gab es für die Naturwissenschaftliche Klasse eine Extrastunde Informatik. Da hatten wir erst HTML, dann Turbo Pascal ( :thumbdown: ) und schließlich ein ganz kleines bisschen Delphi. Aber eigentlich hat uns der Lehrer nur ein paar Funktionen genannt, die wir dann mit anderen Werten verwendet haben.


    Beim Ästetischen Profil gibt es jetzt auch Info-unterricht, aber eher Musikverarbeitung am PC usw. Das ganze hat aber mehr das Ziel, was besonderes zu sein. Musik + Informatik gibt es ja sonst nicht so oft.

  • Endlich geschaft ;D

    • Marthog
    • 7. Oktober 2010 um 16:27

    Was habt ihr denn in Informatik gemacht? Mathe?

  • Hex zu Dez

    • Marthog
    • 21. September 2010 um 15:31
    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    GUICreate("", 300, 100)

    [/autoit] [autoit][/autoit] [autoit]

    $input = GUICtrlCreateInput("", 0, 0, 200, 40)
    $label = GUICtrlCreateLabel("", 200, 0, 100, 40)
    $button = GUICtrlCreateButton("OK", 0, 40, 300, 60)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    while 1
    $msg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    Switch $msg
    case $GUI_EVENT_CLOSE
    Exit
    Case $button
    If GUICtrlRead($input)="" Then
    MsgBox(16, "", "Gib bitt ewas ein")
    ElseIf Not StringIsXDigit(GUICtrlRead($input)) Then
    MsgBox(16, "", "Falschesm Zeichen")
    Else
    GUICtrlSetData($label, Dec(GUICtrlRead($input)))
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    Damit sollte es funktionieren. Dann musst du auch nicht diese blöden Send-Befehle nehmen um den Editor zu steuern.
    Die Befehle sind in der Hilfe ausreichend dokumentiert. Damit kannst du herausfinden, was sie bedeuten.

  • AutoIt in C++

    • Marthog
    • 20. September 2010 um 20:04

    Nein.
    Ich kann aber wieder anfangen. Dann werde ich aber wahrscheinlich eine DLL schreiben, aus der Funktionen aufgerufen werden. Ansonsten dauert das compilen immer sehr lange.

    Ich hab aber noch ne neuere Version auf'm PC liegen. Ich müsste sie nbur nochmal etwas überarbeiten, bevor ich sie hochlade.


    EDIT: Hier die neuste Version: http://home.arcor.de/rber/gunnar/AutoItC/download/V_2.x.zip

    Ich hab sie kaum überarbeitet. Viele Funktionen sind erst halb fertig und die Klasse hat auch noch viele komische Stellen.

  • AutoIt in C++

    • Marthog
    • 20. September 2010 um 19:50

    Ich hab schonmal sowas gemacht. Siehe HIER.
    Dabei ist auch eine Klasse, die mehrere Variablentypen annehmen kann. Die Umsetzung des Ganzen ist nicht besonders gut, aber die Funktionen funktionieren so einigermaßen.

  • (Kleine) Darstellung mit Direct X?

    • Marthog
    • 7. September 2010 um 22:26

    Es gibt OpenGL Plugins für AutoIt.

    Wenn du wirklich mit 3d programmieren willst, empfehle ich dir C++ zu lernen und die Irrlicht-Engine zu verwenden. Die ist sehr einsteigerfreundlich. Schon wenn man die Grundlagen beherrscht, kann man durch Kopieren von Code und ersetzen von Zahlen und Strings sich eigene 3d-Anwendungen schreiben.


    Mit dem bösen Forum ist ein anderes AutoIt-Forum gemeint, dessen Hauptaufgabe das schreiben von Spielebots ist.

  • peethebee ist B.Sc.

    • Marthog
    • 2. September 2010 um 17:27

    Herzlichen Glückwunsch :party::party::party:

  • TCP

    • Marthog
    • 1. September 2010 um 16:10

    ALso wir (Luke4321 und ich) haben es bisher nicht geschafft eine TCP-Verbindung zu schreiben.


    Auch wenn wir die Skripte aus Tutorials nehmen funktionierte es nciht.


    Client:

    Spoiler anzeigen
    [autoit]

    TCPStartup() ; TCP wird initialisiert

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $socket = TCPConnect("192.168.100.63", 4321) ; Versucht eine Verbindung zum Server aufzubauen und speichert die SocketID in "$socket" ab

    [/autoit] [autoit][/autoit] [autoit]

    If $socket = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $sendedBytes = TCPSend($socket, "Hi. Dieser Text wurde vom Client gesendet :)") ; Sendet den Text an unseren verbundenen Socket

    [/autoit] [autoit][/autoit] [autoit]

    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    TCPCloseSocket($socket)
    TCPShutdown()

    [/autoit]

    Welche IP-addressen müssen wir eigentlich bei TCPConntect eintragen?

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™