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

25.01.2010, 17:32

[Problem] Fehler beim Linken

Hey ,

und zwar wollte ich mir ein kleines Programm schreiben , bekomme aber beim Linken folgenden Fehler:

Zitat

1>Verknüpfen...
1>html_help.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""int __cdecl PasswortAbfrage(int)" (?PasswortAbfrage@@YAHH@Z)".
1>C:\Users\Lothar Pietrek\Desktop\HTML_Helper\Release\HTML_Help.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Users\Lothar Pietrek\Desktop\HTML_Helper\HTML_Help\Release\BuildLog.htm" gespeichert.
1>HTML_Help - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Quellcode:
Headerdatei:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include <iostream>
#include <fstream>
#include <windows.h>

using namespace std; 

int PasswortAbfrage(int Passwort);
int hauptmenu(int menu_auswahl);


main-Datei:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "html_help.h"

int main()
{

    //Variablen

    int Passwort = 9527521;
    int menu_auswahl;
    
    

    //Hauptprogramm

    SetConsoleTitleW (L"HTML-Helper by Lodda");
    PasswortAbfrage (Passwort);
    

    getchar();
}

// Funktion PasswortAbfrage

int PasswortAbfrage(int Passwort, int menu_auswahl) 
{

    cout << "Sie benoetigen fuer dieses Programm ein Passwort!" << endl;
    cout << "Bitte geben sie das Passwort ein:" << endl;
    cin >> Passwort;
 

    if (Passwort == 9527521) 
    {
        cout << "Zutritt gewaehrt." << endl;
        hauptmenu(menu_auswahl);
    }
    else
    {
        cout << "Zutritt verweigert!" << endl;
        Sleep(5000);
        return 0;
    }


}

int hauptmenu(int menu_auswahl)
{
    cout << "\tHauptmenu" << endl;
    cout << "\tCopyright 2010 Lothar Pietrek" << endl;

    cout << "\n(N)eues HTML-Dokument" << endl;
    cout << "(H)ilfe anzeigen" << endl;
    cout << "(B)eenden" << endl;
    getchar();
}


Wäre echt nett , wenns hier Hilfe gibt. :)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

25.01.2010, 17:34

deklaration:

Quellcode

1
int PasswortAbfrage(int Passwort); 

definition:

Quellcode

1
int PasswortAbfrage(int Passwort, int menu_auswahl) 


passiert recht häufig
der header gibt an, dass es diese funktion gibt und es wird kompiliert. der linkter meckert aber.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

idontknow

unregistriert

3

25.01.2010, 17:34

kuck mal auf die Parameter der Funktion PasswortAbfrage in main.cpp ;)

4

25.01.2010, 17:49

Danke. :)
Dannach noch ein paar Kleinigkeiten beseitigt , und es ging ... :)
Hatte ja eine etwas längere Lern-Pause , und will jetzt wieder einsteigen , und will eben ein Programm schreiben , mit dem ich simplen HTML-Code erzeugen will. :)
Nur eine Frage , ich habe jetzt bei den ganzen Funktionen (auch bei den ifs dort) ein return 0; einfügen müssen , weil der Compiler meckerte , dass ein return-Wert zurückgegeben werden muss ... Kann man das nicht ändern ?

5

25.01.2010, 17:51

Ähm, den Rückgabetyp der Funktionen ändern?
(Stichwort 'void')

6

25.01.2010, 17:58

Okay wieder ein Danke. :)
Lerne halt noch. ;)

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

7

25.01.2010, 17:59

Zitat von »"Lodda"«


Nur eine Frage , ich habe jetzt bei den ganzen Funktionen (auch bei den ifs dort) ein return 0; einfügen müssen , weil der Compiler meckerte , dass ein return-Wert zurückgegeben werden muss ... Kann man das nicht ändern ?

Wenn du einen Rückgabetypen angibst, muss auch ein Wert zurückgegeben werden. Und das bei jedem if-Zweig.

In deinem Code wird bei Passwortabfrage nur dann ein Wert zurückgegeben, wenn der else-Zweig aufgerufen wird. Das ist nicht richtig, weil der Compiler ja nicht weiß, was er andernfalls(wenn man es richtig eingibt) machen soll.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

8

25.01.2010, 18:02

wenn du verhindern willst dass jemand dein programm ohne berechtigung nutzt solltest du wenigstens das pw nicht als klartext hin schreiben oO ist dann zwar immernoch möglich aber netmehr sooo einfach xD

auf welche art und weise lernst du denn?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

9

25.01.2010, 18:14

Zuerst wollte ich ja ein Passwort aus Buchstaben nehmen , weil man mit einem einfach Shellscript alle Zahlen durchprobieren könnte , bis das Passwort geknackt ist , nur hatte ich dann Probleme damit ... Hatte es mit string und mit char probiert , nur wollte beides irgendwie nicht funktionieren. ;)

Und ich lerne ganz normal mit dem Buch hier. :)
Nur habe ich lange nicht mehr programmiert , und ziemlich viel ist unklar geworden oder war teilweise ganz weg. ;(
Und mit diesem Programm will ich jetzt den Wissenstand wieder auffrischen und mich einüben.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

25.01.2010, 18:19

einen charstring kannsu auch nicht einfach vergleichen.

das problem ist, dass man das pw aus der exe auslesen kann^^
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige