ta les propriete du projet tu a indique le nom du lib?
suffit pas de le mettre dans le repertoire...
bien vu ,c'était bien ça.merci beaucoup
deathsharp
ta les propriete du projet tu a indique le nom du lib?
suffit pas de le mettre dans le repertoire...
weblook$
j'ai plus le temp je retest ça ce soir.
Merci à tous :jap:
godbout
il ne faut pas oublier d'inclure le *.h ou sont definies les fonctions dans le cas ou on utilise un lib
seblamb
Le .lib sert uniquement dans l'exe qui va utiliser la dll.
Il y a 2 façons pour un EXE de charger une dll :
soit on laisse windows le faire tout seul et il faut mettre le .lib dans le projet de l'executable.
soit on le fait par programmation ( Loadlibrary ...) et on a pas besoin du .lib.
chrisbk
weblook$ a écrit a écrit :
ça voudrais dire que l'on a pas besoin des deux en même temp???
si si, la lib comme g dit te fais juste un petit bout du boulot a ta place, mais ne remplace pas ta DLL
weblook$
antp a écrit a écrit :
oui mais le .lib il est compilé dans le exe, non ?
alors que la dll elle peut etre appelé par le exe à son démarrage ou au moment où on en a besoin.
ça voudrais dire que l'on a pas besoin des deux en même temp???
dans ta dll tu definis BLABLA
dans ton exe nan
Comme ca le pb des dllexport et dllimport ne se pose plus.
Devant les fonctions a exporter/importer tu fais juste un extern "C" BLABLA int fonction(int,int);
weblook$
je vois pas trés bien en quoi ça pourrait me servir de mettre des #ifdef tu peux préciser STP??? j'ai essayer mais sans reussite .
par ailleur tu me confirme que l'appel de ma fonction est bien correct j'ai pas de truc à mettre devant pour pouvoir m'en servir???? genre:__dll..truc nb=fonction(5,4)
antp
oui mais le .lib il est compilé dans le exe, non ?
alors que la dll elle peut etre appelé par le exe à son démarrage ou au moment où on en a besoin.
chrisbk
1/ truc qui me parait pas clair :
extern "C" __declspec(dllexport) int fonction(int,int);
ca, ca m'a l'air OK quand tu compiles ta DLL, par contre pour le prog ce serait plutot ;
extern "C" __declspec(dllimport) int fonction(int,int);
(donc regle ca a coup de #ifdef ....)
2/le .lib te sert a ne pas avoir a faire les LoadLibrary, GetProcAdress et tout ca....
weblook$
je creer sous visual project new dll , simple project
dans le def.cpp
je met:
extern "C" __declspec(dllexport) int fonction(int,int);
puis la declaration:
int fonction(int iNombre1, int iNombre2)
{
return ( ( iNombre1 < iNombre2 )? iNombre1 : iNombre2);
}
je creer un autre projet pour essayer d'appeler 'fonction'
dans le .cpp ou je veux avoir accés à ma fonction je mets:
extern "C" __declspec(dllimport) int fonction(int,int);
je copie le .lib dans mon projet et le .dll dans le dossier debug de mon projet
A la compile j'obtiens une erreur de linkage:
error LNK2001: unresolved external symbol __imp__Minimum
1-pourquoi???
2-par ailleurs je ne vois pas trés bien à quoi corresponde le .lib et le .dll(je m'attender à n'avoir q'un simple .dll????)
Merci d'avance à celui qui sera apporter des réponses à mes questions