OverOver
Messages postés7Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention 6 juin 2008
-
2 juin 2008 à 13:06
OverOver
Messages postés7Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention 6 juin 2008
-
6 juin 2008 à 10:21
Bonjour,
Je dois utiliser un projet c++ en tant que DLL dans Labview.
J'ai donc crée une application DLL (sous Win32 Dynamic-Link Library) auquel j'ai ajouté mes codes ( sources .c et .h)
Mais à la compilationun bonne cinquantaine d'erreurs du type:
OverOver
Messages postés7Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention 6 juin 2008 2 juin 2008 à 16:24
Merci de ta réponse Pistol-Pete,
j'ai bien mis BvcDib.h dans mon programme:
#pragma once
#include
#include
#include
using namespace Bvc;
Je m'explique,
Au départ ce projet était destiné a visualiser une camera connecté au PC gràace à un bus 1394. Donc il renvoyait un .exe avec une fenetre windows permettant de regler les paramètres de la camera.
Puis, j'ai voulu controler l'acquisition d'images grâce à un Trigger, j'ai pensé à exporter les fonctions sous forme d'une DLL manipulable avec Labview.
L'ensemble du projet marche très bien en MFC AppWizard (exe )
Mais pas quand j'ai voulu créer ma DLL avec MFCAppWizard (dll), je compile bien mais j'ai un pb d'édition de leins, d'ou l'erreur LNK2001.
J'ai aussi essayé avec une Win32 Dynamic-Link Library.. mm resultat
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 2 juin 2008 à 17:27
Ok tu as ajouter le point h, c'est un debut, ton compilo pourra savoir s'il y a des erreurs de syntaxe ou non. Mais il faut aussi indiquer ou se trouve le code de ses fonctions.
Si le code correspondant a ton fichier .h se trouve dans une dll, il faut l'indiquer au compilo avec un pragma once
OverOver
Messages postés7Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention 6 juin 2008 3 juin 2008 à 10:56
Ya pa d'erreurs, je compile l'ensemble des sources sans pb. Je crois que le pb se trouve au niveau de l'édition de liens ( d'ou LNK). Et comme je l'ai dejà dit, le projet fontionne parfaitement en sortie .exe mais pas en application DLL.
Mes fichiers .h ne se trouvent pas dans une dll, j'ai bien spécifié le chemin des .h avec pragma once.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 3 juin 2008 à 18:37
tu peux mettre le code de la fonction qui utilise ::GetPixels()? Peut-être cela sera-t-il plus clair.
D'autre part je suppose que tu as bien implémenté
void * __thiscall Bvc::CDib::GetPixels(void)const
dans un .c inclus au projet? bien avec le const (je demande on sait jamais)?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 3 juin 2008 à 20:09
ouais mais attends : dans un .h t'as des déclarations, pas le contenu des fonctions; où est-il? Dans un .c ou .cpp(dans ce cas l'as-tu joint au projet) ou dans un .lib (dans ce cas l'as-tu ajouté au projet avec comme proposait Pete, #pragma comment(lib,"BvcDib.lib") ou quelque soit son nom) ou dans une dll externe?
ce que je comprends pas c'est que t'arrives à compiler en exe et pas en dll
t'es sûr d'avoir bien copié toutes les références entre les deux (pas seulement les .h mais aussi les .lib, dans directories.library) ?
OverOver
Messages postés7Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention 6 juin 2008 4 juin 2008 à 09:42
Juju12, j'ai bien BvcDib.h et Bcam.h dans le repertoire INC/
Mais dans LIB/ je ne vois que BcamApiAtl7.lib, BcamApiMfc7.lib, BvcDibAtl.lib et BcvDibMfr7.lib
Est-ce normal que je n'ai pas Bcam.lib et BvcDib.lib ??
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 4 juin 2008 à 12:20
ben je suppose que tu as fait deux projets, un exe et une dll?
Dans ce cas est-ce-que TOUTES les libs répertoriées (dans /LIB) dans le projet exe le sont bien également dans le projet dll?
Pour BvcDib.lib non non je disais ce nom au hasard mais ça doit être les autres BvcDibFr7.lib etc...
En dernier recours si tu veux je t'enverrai mon mail par message privé, tu m'enverras tes deux projets et je regarderai;
OverOver
Messages postés7Date d'inscriptionmercredi 14 mai 2008StatutMembreDernière intervention 6 juin 2008 4 juin 2008 à 13:03
J'ai crée un application dll, car je croyais qu'onne peut pas exporter les fonctions d'un d'une application .exe. mais si c'est possible j'aimerais savoir comment.
Je pourrais également t'envoyer le projet par mail mais tu ne pourra pas le compiler car le prog doit detecter la camera. Mais bon si ça peut me permettre d'y voir plus clair pourquoi pas
dsl mais j'ai du mal avec c++ ( que j'ai utilisé que quelques mois en école d'ing)... j'aurais jamasi imaginé une réutilisation... ça m'apprendra...