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

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

1

07.11.2007, 13:05

frage zu selbst geschriebener DLL

ich habe nun mal meine engine als dll verpacken wollen und habe das auch ohne probleme hinbekommen. nur eine sache würde ich gerne wissen, ob das normal so ist oder ob ich wo was verkehrt gemacht habe. erstmal die hauptheader:

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
/*--------------------------------------------------------------------------------------------
aice.h

deklaration zu aice.cpp. verbindung zur Engine per dll
--------------------------------------------------------------------------------------------*/

//--Defines-----------------------------------------------------------------------------------


#pragma once

#ifdef AICE_EXPORTS
#define AICE_API __declspec(dllexport)
#else
#define AICE_API __declspec(dllimport)
#endif

#define DIRECTINPUT_VERSION (0x0800)

//--Header ausserhalb-------------------------------------------------------------------------


#include <windows.h>
#include <ddraw.h>
#include <dinput.h>
#include <stdio.h>
#include <fmod.hpp>
#include <time.h>

//--Header der Engine-------------------------------------------------------------------------


#include <directdraw.h>
#include <directinput.h>
#include <fonts.h>
#include <logdata.h>
#include <shell.h>
#include <sound.h>
#include <surfaces.h>
#include <utils.h>


nun werden ja bei jeder cpp-datei die zur engine gehören nur dieser header inkludiert, wodurch jede cpp.-datei zugriff auf alles hat, soweit so gut.
nun nutzten viele meiner klassen innerhalb der engine eine andere klasse(names CGlobals) aus der engine, in der globale Objekte gespeichert werden (als static). sie steht in der utils.h.

nun als ich das ganze so kompliliert habe, gab es genau deswegen probleme, dass er die entsprechende Klasse (CGlobals) nicht finden kann. aber es werden doch alle header aus der hauptheader geholt, deswegen verstehe ich nicht, dass er die klasse nicht kennt. ich meine die ganzen directx-klassen findet er ja auch.

deswegen habe ich zusätzlich bei jeder engine-header die utils.h inkludieren mussen und ich bin der meinung das muss ja nich sein

habe ich irgendwas falsch verstanden und es muss ein fehler sein? oda ist das normal?

Sheddex

unregistriert

2

07.11.2007, 13:37

utils.h muss ganz nach oben in die Liste, da sonst die Deklarationen aus dieser Datei natürlich noch nicht bekannt sind.

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

3

07.11.2007, 13:52

ahhh jetz gehts danke.

4

07.11.2007, 14:21

Naja du solltest dir mal angewöhnen, Projekte so zu schreiben, dass sie nciht von einem Compiler abhängen ...
und dann:

C-/C++-Quelltext

1
2
3
#include <cstdio>
#include <fmod.hpp>
#include <ctime>
wobei man die Funktionen aus <cstdio>(ehemals <stdio.h>) nicht braucht. Das geht auch alles mit schönerem C++ :) Die Funktionen aus <ctime> sind allerdings so nicht anders im C++-Standard aufzufinden. Ehm evtl. wirst du aber Probleme bekommen, weil jetzt alle Funktionen aus ctime und cstdio im Namensraum "std" liegen.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

5

11.11.2007, 15:55

okay, danke für den tipp. ich werde das mal umändern.

Werbeanzeige