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

71

31.07.2008, 00:25

Um Fehler mit dem gegenseitigen Includieren zu verhindern brauchst du include Guards(mit nem Microsoft Compiler einfach #pragma once an den Anfang des Headers).
Und wenn du nicht gerade alle Funktionen inline machst sollte deine Headerdatei auch ne zugehörige cpp datei haben für die Funktionsrümpfe.

EDIT: In IrgendeineDatei2.h brauchst du normalerweise IrgendeineDatei.h nicht mehr includieren, da das ja schon in MeineDll.h gemacht wurde.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

kiba

Alter Hase

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

72

31.07.2008, 00:42

also ich hab das jetzt so gemacht

Quellcode

1
2
3
4
5
6
#include "MeineDll.h"

int WINAPI DllMain(HINSTANCE handle, DWORD reason, LPVOID reserved)
{
  return 1;
}


Quellcode

1
2
3
4
//basics.h

#include <window.h>
//nur includes wie windows.h und nur typedefs oder #define


Quellcode

1
2
3
4
//MeineDll.h
#include "basics.h"
#include "IrgendeineDatei.h" 
#include "IrgendeineDatei2.h"

Quellcode

1
2
3
4
//IrgendeineDatei.h 
#include "MeineDll.h"

// Mach hier was du willst... (Funktionen, Klassen, ... deklarieren)

Quellcode

1
2
3
4
//IrgendeineDatei.cpp
#include "MeineDll.h"

// Mach hier was du willst... (Funktionen definieren)

Quellcode

1
2
3
4
//IrgendeineDatei2.h 
#include "MeineDll.h"

// Mach hier was du willst... (Funktionen, Klassen, ... deklarieren)

Quellcode

1
2
3
4
//IrgendeineDatei2.cpp
#include "MeineDll.h"

// Mach hier was du willst... (Funktionen definieren)


aber es kommen immer noch die warnungen (zu jeder funktion)
die selbe warnung:
Inkonsistente DLL-Bindung.


EDIT:
hat sich erledigt
hab ausversehen

Quellcode

1
2
3
4
5
#ifdef DLL_EXPORTS
    #define DLL __declspec(dllexport)
#else
    #define DLL __declspec(dllimport)
#endif

aber da das project ja den namen "dll_project" hat und so mit den makro:
DLL_PROJECT_EXPORTS vor definirt hat
musste ich es ab ändern

Quellcode

1
2
3
4
5
#ifdef DLL_PROJECT_EXPORTS
    #define DLL __declspec(dllexport)
#else
    #define DLL __declspec(dllimport)
#endif


@Anfänger:
thx für deine hilfe jetzt kappt alles