[Visual C++] Probleme de link d une dll avec code C et C++

nebucad Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 8 juin 2004 - 8 juin 2004 à 04:08
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 8 juin 2004 à 10:39
Bonjour tout le monde

Je suis sur un problème depuis quelques jours et j'en appelle donc à votre âme charitable pour régler ce problème que je rencontre lors de la création d'une dll avec Visual C++...

Tout d'abord pour commencer un petit résumé de ce que je souhaite faire....
Je dois réaliser une interface en java et réaliser des appels à une dll de calcul par l'interface JNI. Pour ce qui est du code de l'ihm tout va bien, pour les calculs qui doivent être réalisés en c++ pas de problème.
L'exe que j'avais généré pour tester le programme ( programme qui fait l'acquisition du son et son traitement ) passe très bien.
La création d'une dll test ( et oui il faut bien commencer par quelque chose...) juste compatible avec jni et qui me fait des communications de tableau de double avec l ihm marchait très bien.

Mais lorsque je souhaite ajouter au projet créant la dll les objets qui vont réaliser l'acquisition et le traitement, il m'est impossible de compiler et ce pour diverses raisons qui sont les suivantes:

nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined
in MSVCRTD.lib(dllmain.obj)
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)"
(??_U@YAPAXI@Z) already defined in MSVCRTD.lib(MSVCR71D.dll)
nafxcwd.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined
in MSVCRTD.lib(dllmain.obj); second definition ignored
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new[](unsigned int)"
(??_U@YAPAXI@Z) already defined in MSVCRTD.lib(MSVCR71D.dll);
second definition ignored
Creating library D:\_accordeur\testjni\testprecompiled\Debug\Param.lib and object
D:\_accordeur\testjni\testprecompiled\Debug\Param.exp
nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
nafxcwd.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(viewedit.obj) : error LNK2019: unresolved external symbol __mbctype
referenced in function "protected: long __thiscall CEditView::OnFindReplaceCmd(
unsigned int,long)" (?OnFindReplaceCmd@CEditView@@IAEJIJ@Z)
D:\_accordeur\testjni\testprecompiled\Debug\Param.dll :
fatal error LNK1120: 3 unresolved externals

Donc rien de bien sympathique...

J'ai cherché sur le net ( peut-être mal vous me le direz si c'est le cas ;) ) mais je ne vois pas d'où peut provenir mon problème.

L'architecture de la dll est ainsi faite:
acquis.c et acquis.h qui sont les points d'entrée de la dll pour JNI
capture.cpp et .h classe qui effectue l'acquisition du son
traitement.cpp et .h qui fait le ~ adhoc sur le son récupéré

Donc lors de la création de ma dll j'ai ajouter ces fichiers ( juste des classes donc il ne devrait pas y avoir de problèmes... ) au projet mais comme mentionné plus haut et bien non ça ne veut pas :(

J'espère que vous pourrez m'aider pour m'indiquer d'où peut venir ce problème

D'avance merci

neb

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 juin 2004 à 10:39
C'est utile du MFC dans la DLL ?

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous