Programm in Programm erstellen?



  • Hi, ich hätte folgende frage:

    Wie ist es möglich ein Programm in einem Prgramm zu erstellen?
    Das ein Programm auf Tastendruck einem zum Beispiel ein kleines Hello World Programm erstellt.

    könnte mir vll. einer einen kleinen beispiel source geben?

    mfg seak



  • Hi Bruder !

    Dein Programm muss:
    - Eine C-Datei mit einer main() Funktion schreiben.
    - Einen Compiler aufrufen, der dir eine ausführbare Datei daraus macht.



  • nennt man solche programme (bzw die programmierung) nicht meta programmierung?



  • Skym0sh0 schrieb:

    nennt man solche programme (bzw die programmierung) nicht meta programmierung?

    Jep! Ich hoffe das wird dir helfen...



  • #include <windows.h>
    #include <stdio.h>
    
    char* src = 
    	" #include <stdio.h>\n"
    	" int main()"
    	" { " 
    		 " puts(\"HeLlO WoRlD\"); "
    		 " return 88; "
        " } ";
    
    int write_source( char* f )
    {
       FILE* fp = fopen( f, "w" );
       if( !fp ) return 1;
          fputs( src, fp );    
       fclose(fp);
    return 0;
    }
    
    int compile_source( char* cmd )
    {
    	if( system( cmd ) ) 
    		return 1;
    return 0;
    }
    
    void execute( char* cmd )
    {
    	system( cmd );
    }
    
    int main()
    {   
    	char* src = "a.c";
    	char* out = "a.exe";
    
    	char cmd[64] = {0};
    
    	if ( write_source( src ) )
    		return 1;
    	sprintf ( cmd, "gcc %s -o %s", src, out );
    	if ( compile_source( cmd ) )
    		return 1;
    	execute( out );
    return 0;
    }
    


  • Thx an alle!



  • no problem. cooler ist, wenn das programm schon erstellt ist. wenn also char* src,
    schon ein char* exe ist.
    willsagen, char* exe eine kompilierte, ausführbare datei ist. dann braucht die zielmaschine keinen compiler zu haben.



  • Ja stimmt wär schon geiler aber ich schätz auch mal schwerer!

    Hätte dafür einer einen sourcecode?



  • das ist nicht so schwer. erstmal musst du natürlich die exe datei erstellen.
    dann brauchst du eine headerdatei z.b. exe.h, erstellen mit fopen.
    variablendeklaration reinschreiben, dann einfach nur byteweise die datei mit entsprechender formatierung(Kommas) reinkopieren.
    deklaration beenden '}' -> feddich

    am ende sieht deine headerdatei ungefähr so aus:

    // exe.h
    char exe[] = 
    { 
        0xAB, 0xAB, ... // die daten deiner exe datei
    }
    

    die kannst du dann von deinem programm aus einfach als exe abspeichern.


Anmelden zum Antworten