Bonjour !
Ce topic s adresse au ceux qui ont déjà utiliser des fonctions C/C++ d'une DLL livrée avec un driver de périphérique sous Win2000/Xp :
J'expose le contexte :
1. Je dois creer une DLL qui appelle des fonctions d'une autre DLL.
2. Ma DLL sera ensuite utilisé dans prog en Java : cette étape fonctionne...
3. Le périphérique est un composant USB.
4. Les pilotes sont installés ( les fichiers sont bien dans windows/system32), enfin je crois car :
5. Je n'ai pas encore le composant ...
6. J'utilise cl pour compiler ( Microsoft toolkit 2003)
Mais :
Je n'arrive pas à compiler ma DLL dès que je fais appel à une fonction du driver.
Je recois comme message d'erreur :
// debut du message console
cl -I"E:\Microsoft Visual C++ Toolkit 2003\include" -I"E:\Java\jdk1.5.0_06\incl
ude" -I"E:\Java\jdk1.5.0_06\include\win32" -LD JFTD2XX.c -FeJFTD2XX.dll
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
JFTD2XX.c
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:JFTD2XX.lib
/out:JFTD2XX.dll
JFTD2XX.obj
Creating library JFTD2XX.lib and object JFTD2XX.exp
//ERREUR pour liker la fonction FT_Open()
JFTD2XX.obj : error LNK2019: unresolved external symbol __imp__FT_Open reference
d in function _Java_JFTD2XX_jFT_1Open@12
//ERREUR pour liker la fonction FT_Close()
JFTD2XX.obj : error LNK2019: unresolved external symbol __imp__FT_Close referenc
ed in function _Java_JFTD2XX_jFT_1Close@8
JFTD2XX.dll : fatal error LNK1120: 2 unresolved externals
make: *** [JFTD2XX.dll] Error 2
//fin message console
Donc cl n'arrivve pas à référencer mes fonctions : si je les enlève je peux compiler et executer mon prog...
Question :
* Ai je oublié un paramètre pour inclure la DLL du driver ( FTD2XX.dll, la mienne s'appelle JFTD2XX.dll le J pour Java , vous me suivez ) à ma DLL?
* Pour compiler, faudrait il que la DLL soit chargé en mémoire ?
* Une autre idée ??
Merci de votre aide,
Matox