fatal error C1189

fatal error C1189 - C++ - Programmation

Marsh Posté le 05-03-2004 à 10:33:44    

C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afxver_.h(130) : fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds
 

Code :
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Special configurations
  3. // _AFXEXT implies _AFXDLL
  4. #if defined(_AFXEXT) && !defined(_AFXDLL)
  5. #define _AFXDLL
  6. #endif
  7. #if defined(_AFXDLL) && !defined(_DLL)
  8. #error Please use the /MD switch for _AFXDLL builds  <-- mon erreur
  9. #endif
  10. #if defined(_AFXDLL) && !defined(_MT)
  11. #error Please use the /MD switch (multithreaded DLL C-runtime)
  12. #endif


 
j'arrive pas à comprendre cette erreur .... !


Message édité par lecoyote le 05-03-2004 à 10:34:48
Reply

Marsh Posté le 05-03-2004 à 10:33:44   

Reply

Marsh Posté le 05-03-2004 à 10:47:18    

bin ton projet, tu dois le mettre en multithread DLL dans les options (/MD ou /MDd)
 
sous Vc++ 7 => prorpiétés de configuration => C/C++ => génération de code => bibliothèque runtime => la tu passes en multithread DLL


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 05-03-2004 à 11:29:18    

gloups


Message édité par lecoyote le 05-03-2004 à 11:30:36
Reply

Marsh Posté le 05-03-2004 à 11:30:16    

le pb, c'est que lorsque je me met en multithread DLL, j'en plein d'erreur de linkage qui ne devrait pas y etre...:

Code :
  1. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall WNetworkImage::IsConnected(void)" (?IsConnected@WNetworkImage@@UAEHXZ)
  2. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall WNetworkImage::Disconnect(void)" (?Disconnect@WNetworkImage@@UAEHXZ)
  3. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall WNetworkImage::~WNetworkImage(void)" (??1WNetworkImage@@QAE@XZ)
  4. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall WNetworkImage::Connect(char *,unsigned long)" (?Connect@WNetworkImage@@UAEHPADK@Z)
  5. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall WNetworkImage::WNetworkImage(void)" (??0WNetworkImage@@QAE@XZ)
  6. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall WImage::~WImage(void)" (??1WImage@@UAE@XZ)
  7. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall WImage::Display(struct HDC__ *,int,int)" (?Display@WImage@@QAEXPAUHDC__@@HH@Z)
  8. afficheimageDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall WImage::WImage(struct tagBITMAPINFO *,unsigned long,void *)" (??0WImage@@QAE@PAUtagBITMAPINFO@@KPAX@Z)
  9. Release/afficheimage.exe : fatal error LNK1120: 8 unresolved externals


 
et je sais que mon linkage est bon !


Message édité par lecoyote le 05-03-2004 à 11:31:03
Reply

Marsh Posté le 05-03-2004 à 12:22:32    

a priori, ton linkage n'est pas bon puisque c'est que ton linker te dit que non! Quand tu utilises le compilo de microsoft, la spécification du mode de type single-threaded/multithreaded/multithreaded-dll change la lib runtime qui est utilisée. Pour pouvoir linker, il faut que tout soit cohérent, sinon ça peut pas linker.

Reply

Marsh Posté le 05-03-2004 à 14:06:53    

a mon idée t'as configurer ton linker en debug et pas en releaseou un truc du genre. bref, la te manque des libs

Reply

Marsh Posté le 05-03-2004 à 14:07:11    

Citation :

Release/afficheimage.exe


 
bn tu fais une DLL ou un exe ? :o

Reply

Marsh Posté le 05-03-2004 à 20:50:35    

oui, c'est surement ca.... je réessayrai lundi en mode release... j'y avait pas du tout penser ! :(


Message édité par lecoyote le 05-03-2004 à 20:50:50
Reply

Marsh Posté le 03-08-2004 à 11:28:37    

J'ai la meme erreur avec Dev-C++. Comment je fais dans ce cas? Je ne trouve pas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed