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

23.09.2007, 23:00

DLL inconsistant linkage ...

Also ... hab nen altes VC++2003 Projekt auf VC++2005 umgestellt. Bekomme da nun einige Warnungen ... die meisten sind klar und hab se mittlerweile weg. VC++2005 ist viel pingeliger im Umgang mit Templates als VC++2003 ^^ Naja egal ... auf jedenfall sind einige Klassen zum exportieren aus der Klasse angegeben. Doch er gibt mir einen Haufen C4273 Warnings ... aus. Warnungen sehe ich fast wie Fehler => Die müssen weg! Deaktivieren sicherlich nicht ...
Also folgendes:
Warnung:

Quellcode

1
2
path\dll_dir\dll_file_one.cpp(6) : warning C4273: 'DLL::DLL_class::DLL_class' : inconsistent dll linkage
        path\dll_dir\dll_file_one.h(15) : see previous definition of '{ctor}'


Klasse:
Header

C-/C++-Quelltext

1
2
3
4
5
6
7
namespace DLL
{
    class DLL_API DLL_class
    {
        DLL_class();
    };
};

Source

C-/C++-Quelltext

1
2
3
4
5
#include "dll.h"
namespace DLL
{
   DLL_class::DLL_class() {}
};

DLL_EXPORT_MACRO

C-/C++-Quelltext

1
2
3
4
5
#ifdef DLL_LIB_EXPORT
#   define DLL_API      __declspec(dllexport)
#else
#   define DLL_API      __declspec(dllimport)
#endif


Die Namen der Klasse sind natürlich ersetzt. Jemand eine Idee?
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

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

2

23.09.2007, 23:06

Wenn du genau diesen code kompilierst, sollte eig. keine warnung kommen.(oder ich bin dumm)

Socke

3

23.09.2007, 23:30

Hmm irgendwas ist im Projekt faul ... Mal schauen ... es ist nur in einer von 6 Dlls der Fall und in den anderen klappt es so korrekt ... naja ^^
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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

24.09.2007, 00:11

Zitat

Two definitions in a file differ in their use of dllimport.


sagt die MSDN dazu. ich frag mich grad nur wie das bei dem code da oben passieren kann^^ evtl. passierts ja wo anders!?

5

24.09.2007, 00:27

Hmm nee ... hab den Fehler jetzt so ziemlich raus ... meckert jetzt(nen anderes Problem!) nur noch daran herum das ich std::ctype nutze ... aber was solls ^^ Das bekomm ich schon noch weg ... naja ...

Hmm das dumme war das ich die MFC komplett aus dem Projekt verbannt habe und deswegen einige Klassen neu schreiben musste ... scheint mir nen Tippfehler unterlaufen zu sein oder so ...
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

Werbeanzeige