Accueil > Forum > > > > Compilation dll avec appelle de fonctions externes
Compilation dll avec appelle de fonctions externes
vendredi 14 août 2009 à 15:39:31 |
Compilation dll avec appelle de fonctions externes

pingosso
|
Bonjour,
Je travaille en ce moment sur un projet qui rassemble du C du VB.NET et du fortran.
EN fait j'ai un problème pour faire communiquer le simulateur en C et Fortran, et l'interface graphique qui est en VB.NET.
Je voulais passer par le __declspec(dllexport) (ce qui marche très bien quand on travaille sur une dll toute simple), mais le problème c'est que je n'arrive pas à compiler une dll avec VC++ (6.0) quand il y a des appels à des fonctions ou données externes via les headers?!!!
J'ai à chaque fois une erreur de link lnk_2001 avec un "unresolved identifier _XXX" (XXX étant le nom de ma fonction ou de la structure que je veux utiliser)
Par contre si je mets le même code dans une librairie statique là ça marche, mais alors du coup impossible de faire appel à la librairie à partir de VB.NET.
Merci par avance de votre aide, même si c'est pour me dire d'arrêter le prog lol!
Lo
|
|
vendredi 14 août 2009 à 16:22:51 |
Re : Compilation dll avec appelle de fonctions externes

ghuysmans99
|
As-tu mis ceci dans ton code ?
Code C/C++ : #pragma comment(lib,"chemin du fichier.lib")
---
VB.NET is good ... VB6 is better 
|
|
lundi 17 août 2009 à 08:10:30 |
Re : Compilation dll avec appelle de fonctions externes

pingosso
|
Non!!!?
Mais dans quel code? Celui de la dll ou celui de la lib qui contient le header et la fonction que je souhaite utiliser?
Comment fonctionne ce #pragma comment?
Merci pour ta réponse.
Lo
|
|
lundi 17 août 2009 à 08:43:33 |
Re : Compilation dll avec appelle de fonctions externes

pingosso
|
Je viens de tester le #pragma comment et ça ne marche pas. Il me ressort cette erreur:
error LNK2001: unresolved external symbol _lolo
"lolo" étant le nom d'une structure de ma librairie, qui est contenue dans un header.
Je ne sais plus comment faire!!!
|
|
lundi 17 août 2009 à 18:25:22 |
Re : Compilation dll avec appelle de fonctions externes
|
mercredi 19 août 2009 à 16:20:13 |
Re : Compilation dll avec appelle de fonctions externes

pingosso
|
Merci.
Je n'ai pas trouvé la solution, mais c'est pas grave j'ai essayé de trouver autre chose, mais bon je me retrouve confronter à un autre problème:
Quand je déclare une structure en extern dans ma dll, elle me sort la même erreur de link en disant qu'il y a un problème de symbol extern!!!
Pourtant cette structure est déclarée dans un header qui est inclus dans la dll???!!!
Comprend plus rien lol
|
|
mercredi 19 août 2009 à 18:17:33 |
Re : Compilation dll avec appelle de fonctions externes

ghuysmans99
|
Oui, tu mets toujours __declspec(dllexport) mais faut pas oublier que ça n'est valable uniquement quand tu compiles ta DLL, pas quand tu t'en sers dans un autre programme ! Tu dois donc faire comme ça :
- Dans les options de compilation du projet de la DLL, tu force la définition de _NOMDELADLL_DLL.
- Dans le header, tu mets ça en tête : de cette façon, si c'est lors de la compilation de la DLL, les symboles sont exportés, sinon ils sont importés.
Code C/C++ : #ifdef _NOMDELADLL_DLL
#define NOMDELADLL_API __declspec(dllexport)
#else
#define NOMDELADLL_API __declspec(dllimport)
#endif
---
VB.NET is good ... VB6 is better 
|
|
jeudi 20 août 2009 à 10:41:42 |
Re : Compilation dll avec appelle de fonctions externes

pingosso
|
Ok Je vais essayé ça mais je ne vois pas vraiment ce que ça va changer.
En fait ce n'est pas l'exportation des fonctions de ma dll qui pose problème mais l'utilisation dans cette dll de structures externes.
Depuis hier j'ai progressé, mais il y a toujours un problème que je pense insoluble:
Ma Dll contient une seule fonction qui permet de retourner un float qui est la copie d'un float d'une structure externe.
Au final quand j'exécute la dll dans mon programme VB.NET, il n'arrive pas à lire le float que la Dll est censée retourner. Par contre si dans la Dll je lui dis de retourner 180, là ça marche. Mais pas avec une valeur d'une structure externe???!!!
En tout cas merci pour tes conseils. ça fait maintenant plus d'une semaine que j'y suis dessus, je vais essayer de voir si je ne peux pas faire autrement. J'ai vu que l'on pouvait utiliser les mapfile pour communiquer entre deux applis, mais bon moi j'ai besoin de temps réel et la je ne suis pas sur que ça soit assez rapide.
Merci encore, Si tu as d'autres solutions je suis preneur. Je teste ta solution ce matin et je te tiens au courant.
A+
Lo
|
|
Cette discussion est classée dans : net, vb, dll, fonctions, externes
Répondre à ce message
Sujets en rapport avec ce message
Utiliser une DLL avec une interface en C [ par TheRobot ]
Bonjour, Je developpe une application en VB.net et je voudrais utiliser une dll avec une interface C.A priori ce n'est pas possible car il n'y a pas d
DLL de VC++ à VB.net [ par toxjamescook ]
bonjour j'ai besoin d'un petit renseignement:Voila je souhaites recupérer des infos numériques de deux bus can puis les visualiser par une interface.j
Utilisation DLL faite su VS c++ dans un projet vb.net 2008 [ par meilop ]
Salut à tous, VS2008 j'ai crée une dll en vs C++ que j'essaie d'executer dans un projet vb.net mais au moment de l'execution de mon programme vb.net q
importé une dll .net creer par vb.net [ par ramzi2002 ]
bonjour, j'ai creer une dll avec vb.net comment je peut utiliser ses class avec VC++ 2010
DLL faite en C++ avec VB [ par Sniper_Vgaerr ]
Je fais un programme de cryptage avec clé privée et publique et je prefere l'interface de VB que celle du C, mais comme le C va plus vite je prefere c
comment faire un setup avec vb.net [ par abelbimbi ]
juste pour savoir comment après la réalisation d'un projet, comment faire un setup avec vb.net votre réponse est la bienvenue!
création de dll sous vb 2005 [ par snowlover18 ]
Bonjour a tous. Alors voila. Je suis débutant en c++ et je dois , pour ma société, rajouter des fonctionnalités (boutons et autre) a un logiciel de ge
Code::Block DLL pour l'utiliser dans VB [ par runo ]
Bonjour, je souhaite créer une DLL en C (ou C++) avec Code::Block que j'utiliserai ensuite sous VB (en fait excel 2003)... Je crée donc mon projet DL
encapsuler une DLL C++ [ par alain8550 ]
Bonjour, J'ai une DLL écrite en VC++ par une tierce compagnie à laquelle je dois accéder en VB.Net ou C#. Je n'ai évidemment pas accès a
problème sur l'utilisation d'une dll sous VB [ par goffle ]
Bonjour, J'ai réaliser il y a quelque temps une programme qui me permettait de contrôler le port parallèle grâce a la dll inpout32 sous code::blocks
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|