Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

10.10.2014, 16:23

C++ .exe an Freunde verschicken die diese ausführen können.

Hallo

Ich bin ein Neuling in der Welt der Programmierung.
Wir haben Anfang des Schuljahres angefangen bisschen mit C++ zu programmieren, das bedeutet mit printf, scanf usw. bisschen probiert, immerhin fängt ja jeder mal klein an :).
Da wir mit dev c++ Arbeiten wird ja immer eine .exe Datei erstellt die dann eben bezweckt das man das Programm sofort ausführen kann.
Jetzt habe ich festgestellt das wenn ich die .exe jemandem versenden möchte das er diese nicht öffnen kann da er ja nicht den dev c++ quelltext besitzt.
Kann mir jemand erklären wie ich das machen kann das mein kumpel nur die .exe benötigt ohne irgend einen Quelltext?
Bitte in einzelnen schritten mir beibringen, wie gesagt ich bin noch ein Anfänger :)

Lares

1x Contest-Sieger

  • Private Nachricht senden

2

10.10.2014, 17:00

Generell braucht dein Freund nur die ausführbare Datei, um die Anwendung zu starten. Wenn du also alles beachtest, sollte es da keine Probleme geben.
Welche Fehlermeldung bekommt dein Freund, wenn die Anwendung bei ihm ausgeführt wird?

Hier mal eine (unvollständige) Liste, an möglichen Ursachen:
Es kann sein, dass...
- du für 64bit Umgebung kompilierst und er aber nur ein 32bit Betriebssystem verwendet (oder gar nen ganz anderes OS als du)
- ihm Bibliotheksdaten fehlen, die deine Anwendung verwendet (dlls)
- du benötigte Ressourcendaten nicht mitlieferst (von deiner Ausführung her hört es sich nicht so an, aber verwendet die Anwendung Bild/Audio/Textdaten?)
- du deine Anwendung nur über Dev-Cpp im Debug ausprobiert hast, aber beim "unabhängigen" Starten ein Fehler auftritt (also ein Bug deiner Anwendung)
- es an irgendetwas liegt, was mir grad nicht einfällt

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

3

10.10.2014, 19:52

Die Visual C++ Redistributables sind sehr oft ein Problem (Die Fehlermeldung lautet dann: msvcp100.dll wurde nicht gefunden oder so).

idontknow

unregistriert

4

10.10.2014, 20:07

Die VS Redistributables braucht man für mit VS kompilierte Programme. Für DevC++ weiß ich nicht was man braucht hab aber mit kurzem google nicht direkt was gefunden, also läuft das evtl mit standard Libraries.

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

5

10.10.2014, 20:22

Jop, dev C++ braucht keine Runtimes. Gab es da nicht eine Möglichkeit die Runtimes von Visual C++ statisch zu linken?

Freundliche Grüße
Stazer

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Stazer« (10.10.2014, 20:35)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

10.10.2014, 20:25

Moment? Erst sagst Du es braucht keine Runtimes und dann willst Du sie trotzdem statisch linken? Irgendwas passt doch da nicht zusammen. Wie linkt man etwas, was es nicht gibt?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

7

10.10.2014, 20:33

Ich meinte natürlich die Runtimes von Visual C++. Hätte mich vielleicht besser ausdrücken sollen.

Freundliche Grüße
Stazer

8

12.10.2014, 13:21

Ich hätte da noch eine Frage, schaut euch mal diesen Quellcode an:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int Antwort;
    
    printf("Willkommen bei diesem mini-Quiz,\n was ergibt 3+3?\n");
    scanf("%i", &Antwort);
    
    if(Antwort == 6){
        printf("Das ist richtig!\n");
    }
    else{
        printf("Nein das ist falsch.\n");
        
    }
    system ("Pause");
    return 0;
    
}


Wenn ich jetzt aber ein Quiz mit Buchstaben machen möchte, wie genau muss ich dann vorgehen? z.B. Welche Farbe hat der Himmel und man muss mit Blau antworten . :)
Wenn ich diese .exe jetzt aber an einem Kumpel verschicken möchte klappt das wie gesagt nicht, ich bräuchte bitte eine genaue Beschreibung wie ich vorgehen muss, oben wurde das ja bereits genannt was für eine Fehlermeldung kommt, nämlich:

Zitat

Die Visual C++ Redistributables sind sehr oft ein Problem (Die Fehlermeldung lautet dann: msvcp100.dll wurde nicht gefunden oder so).

FSA

Community-Fossil

  • Private Nachricht senden

9

12.10.2014, 14:01

Warum denn printf und scanf? Und warum stdio.h :nono:
Willst du C oder C++ programmieren?

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Techie

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

10

12.10.2014, 14:16

@FSA : Er lernt es so in der Schule. Als wir in der Schule mit der Programmierung angefangen haben, da wollte unser Lehrer, dass wir auch die Stdio verwenden...

@Jinjayx3: Du verwendest C Funktionen, an sich ist da nichts falsch, aber ich würde die raten "echte" C++ Klassen zu verwenden.

Hier mal dein Programm in "C++":

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>

int main()
{
    int Antwort = 0;
    
    std::cout   << "Willkommen bei diesem Mini-Quiz! \n"
                << "Was ergibt 3+3?\n";
                
    std::cin >> Antwort;
    
    if( 6 == Antwort )
        std::cout << "Das ist richtig! :) \n";
    else
        std::cout << "Nein, das ist falsch! :( \n";
        
    return 0;
    
}


Hier werden die C++ Funktion "cout" zur Ausgabe und "cin" zur Eingabe verwendet.
Das 'std::' zeigt nur, dass diese Funktionen ( cout und cin ) sich im Namensbereich ''std' befinden.
Optional kannst du oben nach dem Include 'using namespace std;' schreiben, dann kannst du auf den 'std::' Prefix verzichten.

Gruß Techie

EDIT:
@Jinjayx3 kann es sein, dass du vielleicht eine Debug Version deines Programmes erstellst?
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Techie« (12.10.2014, 14:42)


Werbeanzeige