Utilisation en C (ou C++) de (source C ou) DLL

wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004 - 29 avril 2004 à 13:51
wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004 - 29 avril 2004 à 13:56
Mon but est d'utiliser des fichiers C (avec .c et .h... bien sur!) dans mon application linux et windows. Je dispose d'une DLL compilé (par http://www.openssl.org/) et des sources (recuperé sur le site officiel deserté depuis 5 ans). Les sources dont je dispose ont été créé par un 'boos' > SSLeay: code source pour utilisation du protocole SSL (Secure Socket Layer). Le code est trés complexe avec de nombreux .h et .c, structures... > A ce niveaux j'ai donc le choix d'utiliser soit les sources, soit la DLL.

Mes problemes pour l'utilisation des sources:
1/ J'ai les sources d'install (config, makefile pour unix et makefile pour windows pour faire une dll que je n'ai su faire fonctionné...).
Je met donc tous les sources à disposition de mon programme et je compile mon truc (avec VC++ 6) => et la il me retourne 100 erreurs incluant des fichiers n'existant pas sous windows mais sous linux, des erreurs de syntaxe dans le code source même...
Donc ne maitrisant pas le code... j'ai gentiment abandonné


Mes problemes pour l'utilisation de la DLL:
1/ l'utilisation d'un dll en C (dans un premier temp) bien que si aucune solutions est trouvé je passerai à du C++ ou VC++... => Vieux Lion a pour cela un exemple sympa... http://www.cppfrance.com/code.aspx?ID=10423#source mais moi je n'ai aucune posibilité d'influer sur la dll (je ne suis même pas sur de son contenue...)
J'en viens donc au 2/...

2/ Je souhaite utiliser une fonction qui retourne une structure complexe... qui n'est pas definie (puisque qu'elle se trouve dans la dll...)!
En imaginant que je n'ai pas les .h... je fais comment??
typedef ma_****_de_structure (ma_super_fonction) (char *,int );
=> ca c ma premiere vrai question !!!

3/ et en admettant que j'incluse les .h dans mon programme n'y aura t-il pas de conflit entre la description dans les .H et la fonction que je vais recuperer dans la DLL (avec GetProcAddress)...
=> et ca c la deuxieme !!!

4/ Vieux Lion... elle est pour toi celle la... ;)
Si je prend ton exemple cité plus haut et que j'inclus tous les
.h ca devrai marcher?

1 réponse

wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004
29 avril 2004 à 13:56
{{{ j'ai oublié ca dans mon message precedent... }}}

Si vous avez des idées... même pour l'utilisation des sources -> n'hesitez pas...
:) ...merci à tous d'avance... ;)

rappel sur l'utilisation classique d'une dll pour les non initiés -- Mon exemple de base...
fonction dans dll: SSL Iinit_SSL_VC(char* nameServ, int port)
Dans mon prog:
HINSTANCE gLibSSL;

typedef SSL (INIT_SSL) (char *,int );
INIT_SSL* Init_SSL_VC;

Init_SSL_VC = (INIT_SSL*) ::GetProcAddress((HMODULE) gLibFTP, "Init_SSL_VC")
0
Rejoignez-nous