Format d'écriture pour le chemin d'une dll

Bonjour,
Dans mon programme, je travaille avec une dll. Tout fonctionne parfaitement avec ma dll.
Actuellement dans le chemin de la dll, c’est sous la forme c:\toto\.....\...\dll\madll.dll
Or mon projet à cette architecture
Dossier Nom du projet
                + Programme principal.vi
                               + dossier Fonctions dans lequel j'ai des vi pour chaque fonction de ma dlll
                               + dossier dll dans lequel j'ai ma dll utilisé par mon programme
                               + dossier sous-vi
Ce que je souhaite, c’est qu’aulieu de pointer vers l’adresse complète de la dll, c’est lui dire que depuis mon programme principal, il regarde dans la dossier dll, et là prend la dll en question
En gros je veux une écriture du style \dll\madll.dll aulieu de c:\toto\.....\...\dll\madll.dll
Je me doute que c’est faisable, mais je ne sais pas comment l’écrire pour que ça fonctionne.
Merci d’avance.
Résolu !
Accéder à la solution.

Pour réaliser cela il faut que tu prennes la fonctions "Répertoire de l'application (VI)" qui te donne l'aquivalent de C:\toto\ pour une application se trouvant dans : C:\toto\application.exe et aprés tu n'a plus qu'a recrée le chemin avec les fonctions "composer" ou "decomposer un chemins"  pour avoir le chemin complet vers la DLL.
Dans ton cas tu devras utiliser la fonction composer pour ajouter le repertoire dll au chemin.

Similar Messages

  • Comment utiliser des fonctions d'une DLL via le menu "TOOLS"

    Bonjour,
    j'utilise un module fieldpoint dans TestStand, pour lequel j'ai créé une DLL.En dépannage (donc sequence "PAUSED"),je souhaite utiliser mes commandes en chargeant un panneau UIR. Cela fonctionne bien tant le test n'est pas lancé. Mais quand il est lancé, le panneau n'est plus dans le même thread et j'ai une erreur "unknown source position" pour une fonction de la dll. (ça ne concerne pas le panneau,mais une fonction déclenchée par un contrôle).
    MultiThreading ??
    Merci pour toute aide
    JMC
    JMCe

    Carlos,
    d'abord merci de me répondre en français, c'est trés sympathique.
    Je vais essayer d'être clair :
    J'utilise deux modules FieldPoint RS232, un pour des mesures, l'autre pour des relais. L'utilisation du FieldPoint avec CVI et TestStand est délicate car il n'y a qu'un serveur pour les deux, donc :
    Une dll de commande des relais appelle des fonctions dans une autre dll commune aux deux FieldPoint qui elle même appelle les fonctions de base de la librairie CVI. L'initialisation des FieldPoints se fait dans le SequenceFileLoad de la sequence principale.(c'est là qu'on retrouve tous les "Tags" à créer).
    La fonction qui charge le panneau de commande se trouve dans le même fichier dll que l'initialisation du FieldPoint.
    -> je lance cet
    te fonction du menu Tools sans sequence running : ça marche (le thread est le même)
    -> je lance cette fonction dans un step de type action, je lance la sequence : ça marche !! (le thread est le même)
    -> je mets la sequence en "Pause",je lance à partir du menu tools : ça plante (Fatal error:unknown source position le thread est différent).
    La fonction qui plante est une des fonction de la librairie CVI "FP_Read".
    J'ai essayé de charger le panneau dans l'initialisation mais c'est pareil.
    Est-ce plus clair ?
    Merci
    JMC
    JMCe

  • Formalisme Donnée pour appel d'une DLL

    Bonjour à tous,
    Je suis confronté à un problème dans le cadre de l'utilisation d'une DLL externe, je n'arrive pas à formaliser les données sous labview pour qu'elle soit correctement interprété par la dll via un noeud d'appel externe.
    Les informations fournies par les fichiers d'entête sont les suivantes :
    /** \brief Permet de lire et vérifier l'EEPROM BARTON HILL */
    EXPORT int EEPROM_BARTONHILL_CheckRead(FATHANDLE fatHandle, Read_EEPROM_BARTONHILL* data);
    /** \brief parametres de la lecture de l'EEPROM BARTON HILL */
    typedef struct
    char errorCode; /** \brief code erreur de la requete */
    char refFile[FILENAME_SIZE]; /** \brief Chemin et nom du fichier de reference */
    char maskFile[FILENAME_SIZE]; /** \brief Chemin et nom du fichier de mask */
    unsigned int testResult; /** \brief Nombre d'octet different de la reference */
    } Read_EEPROM_BARTONHILL;
    /** \brief Taille maximum en octets du chemin d'un fichier */
    #define FILENAME_SIZE 50
    Sous python, elles sont interprétées de la manière suivante :
    class Read_EEPROM_BARTON(Structure):
    _pack_ = 1
    _fields_ = [("errorCode", c_byte),
    ("refFile", c_char*50),
    ("maskFile", c_char*50),
    ("result", c_uint),
    J'arrive à faire fonctionner correctement cette bibliothèque sous Python, mais je n'arrive pas à mettre en forme correctement les chaines de caractères pour que labview les interprètes correctement. Il s'agit de lien relatif vers un fichier.
    Comment faire pour que labview interprète correctement les pointeurs inclus dans la structure, je pense avoir utiliser quasiment toutes les possibilités du noeud d'appel sans succès.
    Je vous remercie d'avance pour vos réponses.
    Cordialement,
    Michael.

    Bonjour Eric,
    Merci de ta réponse.
    Comme tu l'as signalé, j'ai bien réaliser l'appel à DLL avec un cluster, en configurant le noeud de méthode en "Adapter au type".
    A partir de là, j'ai tester de les configurations possibles (handle par valeur, pointeur sur les handles, .....), rien n'y fait la dll me retourne un code d'erreur me signalant que mes paramètres sont non valides.
    Quand tu parles de préallouer les chaines de caractères, tu signifies quoi ?
    Pour ma part, j'ai forcé la taille des chaines de caractères à 50 via deux méthodes (soit avec la fonction formater chaine qui force la taille de la chaine résultat à 50, soit en passant par un tableau de U8 redimensionner).
    Je pense que mon problème vient justement de la gestion des chaînes de caractères, mais je ne vois pas le problème dans ma gestion.
    Cordialement,
    Michael

  • On m'a volé mon deuxième ordinateur portable avec mes logiciels dessus installé pour le seconde fois, comment vais-je faire pour les réinstaller une troisième fois ?

    On m'a volé mon deuxième ordinateur portable avec mes logiciels installés pour le seconde fois, comment vais-je faire pour les réinstaller une troisième fois sur un troisième pc ?

    This is an English forum site, so posting in English will have a better chance of getting a response. What isn't clear is what Adobe product you are using.
    Ce est un site de forum anglais, donc l'affichage en anglais aura une meilleure chance d'obtenir une réponse. Ce qui est clair, ce est ce que Adobe produit que vous utilisez.

  • Liaison d'une structure entre CVI et TestStand pour une DLL

    Bonjour,
    Je vous écris car en se moment je fais un ajout d'instrument sur un driver en passant par une DLL. Pour le nouvel appareil, il me faut modifier un projet existant. Ce qui me pose porblème c'est que dans le projet il y a une structure qui est passé en paramètre de fonctions usuelles et j'aimerais pouvoir ajouter dans cette structure de nouveau élément. Car quand je code dans la structure les nouvelles composantes et que je modifie, la structure déjà existant dans la séquence TestStand lié à l'ancien code, je n'arrive pas à transmettre les valeurs de TestStand à mon code. Alors que les anciens composants de la structure prennent bien leurs valeurs. J'ai bien essayé de recréer sous TestStand un nouveau type de structure sans partir de l'existant, hélas le résultat à été le même.
    Il est fort possible que j'ai oublié une manipulation n'étant pas encore totalement bien familiariser avec l'environnement de CVI et de TestStand.
    Merci de l'effort de lecture. En attendant une réponse à mon problème, je reste disponible pour plus de détails

    Rodéric -- En ce qui concerne la structure, j'y ai pensé et du coup la première chose que j'ai fait c'est en recréer une nouvelle. en ce qui concerne le menu déroulant, je t'ai pris un imprimé. On voit bien ma structure dans les choixs mais quand je la séléectionne on se retrouve dans le cas du premier screenshot.
    Eric -- Pour le Header, je le recompile en même temps que mon projet et j'arrive ensuite à voir mon paramètre lors d'une implantation de celle-ci depuis ma structure. concrètement j'ai du mal à percevoir le "reconstruire la DLL en prenant en considérant la nouvelle structure". Si tu pouvais un peu plus m'éclairer sur ce point, s'il te plait.
    Pièces jointes :
    MenuDeroulant.JPG ‏19 KB
    PieceOfCode.JPG ‏18 KB

  • Comment faire pour ajouter un lieu à une photo?

    Comment faire pour ajouter un lieu à une ou à des photos qui ont été prises avec des appareils n'étant pas équipés d'un GPS? C'était facile dans iPhoto, mais cela ne semble plus possible dans Photos...

    pierrefromlausanne wrote:
    Comment faire pour ajouter un lieu à une ou à des photos qui ont été prises avec des appareils n'étant pas équipés d'un GPS? C'était facile dans iPhoto, mais cela ne semble plus possible dans Photos...
    TRANSLATE
    How to add a location to one or pictures taken with cameras are not equipped with a GPS? It was easy in iPhoto, but it no longer seems possible in Photos ...
    how to add GPS  / location data to images in the new 'Photos'?
    See comment from léonie

  • J'ai une exception lorsque je lance mon VI pour la deuxieme fois. Ce VI contient une DLL . Pourquioi cette exception?

    Lorsque je lance mon VI qui contient un appel à une DLL, mon VI se plante à la deuxième exécution et je ne comprends pas pourquoi il ya une exception à la deuxième exécution et non à la première. Est-ce un problème de mémoire ou un problème de la DLL?
    Votre expérience est la très bien venue.Merci!

    Bonsoir,
    es tu sur que le plantage vient de la DLL ? Ne serait ce pas un registre à
    décalage non initialisé ?
    Est ce une Dll que tu as créé ou utilise tu la Dll d'un autre programme ?
    cordialement
    jerome
    "Alex80" <[email protected]> a écrit dans le message de news:
    [email protected]..
    > Lorsque je lance mon VI qui contient un appel à une DLL, mon VI se plante
    > à la deuxième exécution et je ne comprends pas pourquoi il ya une
    > exception à la deuxième exécution et non à la première. Est-ce un problème
    > de mémoire ou un problème de la DLL?
    > Votre expérience est la très bien venue.Merci!

  • Associer une dll à un projet et executer un programme appelant sans mettre la dll dans VXI pnp

    Bonjour
    Je souhaiterai exécuter un programme appelant une dll que j'ai compilé et que j'ai lier à l'exécutable mais pas placé dans VXI pnp.
    La compilation se passe bien mais lorsque je lance l'application, un message apparaît et indique que la dll est intraouvable j'ai inclut le chemin du dossier dans lequel est stocké la DLL dans les include path mais sans succès.
    Merci d'avance pour votre aide

    Bonjour,
    Merci d'avoir posté votre question sur le forum de National Instruments.
    Pourvez-vous m'envoyer votre code?
    Brice S.
    National Instruments France

  • Intégration d'une DLL générée sur Simulink dans un algorithme Labview, à finalité app temps réel sur NI myRIO

    Bonjour à tous,
    En deux mots : dans le cadre d'un projet interfacultés, je dois intégrer à mon algorithme Labview l'exécution d'un algorithme d'optimisation actuellement codé sur Simulink d'un tiers. La finalité de mon algorithme est de générer une app temps réel que j'exécute sur le matériel embarqué, NI myRIO.
    J'ai pu lire que justement il était possible d'intéragir entre Labview et Simulink, via le fait que Simulink permet de générer une DLL, et Labview de la lire/exécuter.
    Mes questions sont :
    Est-ce tout-à-fait envisageable dans mon optique d'app temps réel sur myRIO ? (Par exemple, l'exécution de la DLL pourra-t-elle se faire en parallèle du reste mon algorithme Labview (autres acquisitions de données, etc))
    Quid du toolkit NI Labview model interface ? Est-il indispensable de l'acquérir (et si oui pourquoi) ?
    Je sais qu'il est possible de réécrirer directement sur Labview des algorithmes d'optimisation (ici, du MPC), mais ce serait à priori la dernière option envisagée.

    Bonjour,
    Le MIT est la seule option non-obsolète pour exécuter des modèles Simulink dans LabVIEW. Et si tant est que vous utilisez MIT 2014 (avec LabVIEW 2014), vous pourrez exécuter votre modèle Simulink sur le myRIO.
    Les bases pour que tout fonctionne se trouvent ici :
    - http://digital.ni.com/public.nsf/allkb/E552B0CD4E48215586257DF7005BE055?OpenDocument
    Cordialement,
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Possibilité de passage d'une structure C d'une dll appelée dans Labview

    Bonjour, 
    J'aimerais savoir s'il existe un moyen de passer une structure (type de donnée en C) au
    travers de la  boîte de dialogue : "Appeler une fonction d'une
    DLL" pour l'utiliser dans Labview (idéalement sauver directement dans un
    cluster).
    A ce jour j'utilise des pointeurs sur les paramètres individuels pour passer les
    données traitées par ma DLL. 
    Exemple : void  Message(uint32_t *arg1, double *arg2, int32_t arg3)
    En vous remerciant d'avance,
    Meilleures salutations.

    Bonjour,
    En effet, il existe un moyen de passer un cluster dans une DLL en utilisant le type de données "Adapt to Type".
    Il existe une knowledgeBase sur le site de National Instruments expliquant la procédure à suivre.
    How Do I Use Adapt To Type For Call Library Function Nodes?
    Salutations,
    Laurent P.
    Application Engineer
    National Instruments

  • Comment attaquer une DLL sous labview

    bonjour,
    pour le cadere d'un projet je cherche à savoir s'il est possible d'attaquer directement une DLL sous LABVIEW
    cordialement

    Merci mehdi pour la traduction: "Appeler une fonction d'une DLL"

  • Comment créer une dll sous labview avec plusieurs fonctions venant du même VI et possédant un tabcontrol ?

    Comment créer une dll sous labview avec plusieurs fonctions venant du même VI et possédant un tabcontrol ?

    Bonjour,
    L’utilisation d’une « commande d’onglet », ou « tabcontrol », ne pose pas de problème pour la définition d’une DLL à partir d’un VI.
    Selon la version de LabVIEW que vous utilisez, le processus de création de DLL sera différent.
    Si vous utilisez une version antérieure à la v8, vous pouvez vous reporter à ce lien : Construire une DLL avec LabVIEW 7.0.
    Sinon, vous devez enregistrer votre VI dans un projet, puis définir le connecteur de votre VI avec les paramètres d’entrées/sorties (cette opération est indépendante des différentes « commandes d’onglet » que vous avez pu implémenter).
    Sélectionnez, dans le projet les « spécifications de construction » dans le projet (via un click droit), pour créer une DLL. Dans la boite de dialogue qui s’ouvre alors, à l’onglet « fichiers source », vous pouvez ajouter votre VI parmi les « VIs exportés » et configurer, en fonction des E/S câblées sur le connecteur de votre VI, les fonctions contenues dans la DLL.
    J’espère que ces quelques éléments auront pu vous éclairer.
    Cordialement,
    Guillaume H.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • Appel d'une dll avec un callback d'une autre fonction

    Bonjour.
    J'ai une carte d"acquisition vidéo dont je souhaite réaliser les drivers sous labview. Une DLL est fournie avec le manuel SDK d'utilisation.
    Mais je coince à ce niveau :
    Register Draw callback function: RegisterDrawFun()
    API:
    int RegisterDrawFun(DWORD nport, DRAWFUN(DrawFun), LONG nUser)
    Parameters:
    DWORD nport Channel Index
    DRAWFUN(DrawFun) callback function
    LONG nUser user data
    Callback function explanation:
    void CALLBACK DrawFun(LONG nPort,HDC hDc,LONG nUser)
    nPort channel number
    hDc devide context of offscreen surface is similar to the DC of display window
    nUser user data
    Return Values:
    If the function succeeds, the return value is 0.
    Remarks:
    When the video is previewed with offcreen mode, the application call this function to get the device context of offscreen surface so that the application can draw lines, strings, rectangles on the surface of video.
    C'est le callback de la fonction "drawfun"  que je ne sais pas mettre en oeuvre. Et dans quelle DLL de windows ce trouve cette fonction car elle n'est pas dans la DLL fournie.
    Pourriez vous aussi me dire , comment obtient t'on le "handle" d'une valeur contenu dans un indicateur pour le donner en argument d'un appel à une DLL.
    Merci d'avance pour votre aide.
    Cordialement,
    MH.

    Dupliqué >> http://forums.ni.com/t5/LabVIEW/appel-d-une-dll-av​ec-un-callback-d-une-autre-fonctionappel-d-une/m-p​...

  • Appel d'une dll avec un callback d'une autre fonctionappel d'une dll avec un callback d'une autre fonction

    Bonjour.
    J'ai une carte d"acquisition vidéo dont je souhaite réaliser les
    drivers sous labview. Une DLL est fournie avec le manuel SDK
    d'utilisation.
    Mais je coince à ce niveau :
    Register Draw callback function: RegisterDrawFun()
    API:
    int RegisterDrawFun(DWORD nport, DRAWFUN(DrawFun), LONG nUser)
    Parameters:
    DWORD nport Channel Index
    DRAWFUN(DrawFun) callback function
    LONG nUser user data
    Callback function explanation:
    void CALLBACK DrawFun(LONG nPort,HDC hDc,LONG nUser)
    nPort channel number
    hDc devide context of offscreen surface is similar to the DC of display window
    nUser user data
    Return Values:
    If the function succeeds, the return value is 0.
    Remarks:
    When the video is previewed with offcreen mode, the
    application call this function to get the device context of offscreen
    surface so that the application can draw lines, strings, rectangles on
    the surface of video.
    C'est le callback de la fonction "drawfun"  que je ne sais pas mettre
    en oeuvre. Et dans quelle DLL de windows ce trouve cette fonction car
    elle n'est pas dans la DLL fournie.
    Pourriez vous aussi me dire , comment obtient t'on le "handle" d'une
    valeur contenu dans un indicateur pour le donner en argument d'un appel à
    une DLL.
    Merci d'avance pour votre aide.
    Cordialement,
    MH.

    Salut,
    Tu dois utiliser un "Call Library Function Node".  Je ne saurais comment traduire en francais. 
    Ca se situe a l'interieur des fonctions de connectivite sous libraries et executables.
    Lorsque tu installes le "Call Library Function Node" sur ton diagramme, tu dois par-apres le configurer.
    Tu cliques (2x) sur l'icone et tu choisi la fonction dll auquel tu veux envoyer des valeurs.  Une fois choisi, tu peux joindre les parametres.

  • [Labwindows/CVI] Integration d'une DLL VC++

    Bonjour à tous,
    J'ai une DLL VC++ avec le .h et le .lib et je n'arrive pas à l'integrer correctement dans un projet CVI.
    dans le .h j'ai une fonction declaré comme suite
    GET_TX(const int FreqMhz, double& resultsevm);
    Labwindows n'accepte pas le passage par reference (double&) donc j'ai modifier la declaration comme suite à fin de l'integrer
    GET_TX(const int FreqMhz, double *resultsevm);
    c'est vrai que j'ai pas d'erreur de compilation suite a cette modif, mais il me semble que la valeur resultsevm retourné par la DLL pas correcte (valeur tres grand % au valeur attendu ) !!!
    Pouvez-vous m'expliquer comment faire pour integrer la dll correctement ?
    si non comment loader la dll dynamiquement ?
    merci d'avance

    Bonjour Tanite, et bienvenue sur le forum de discussins de National Instruments.
    Voici deux documents qui pourraient éventuellement vous aider à utiliser votre DLL dans votre projet CVI :
    1. Creating Import Libraries for a DLL in LabWindows/CVI
    2. FAQ: Using Dynamic Link Libraries with LabWindows/CVI
    Cordialement,
    Vincent.O
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet

Maybe you are looking for

  • Is it possible to make an enhanced podcast on a pc

    ive searched and searched but still cant find anything... is it still only possible on a Mac? benny

  • Solution Import Failed

    I am trying to import a managed solution in a CRM, but following error occurs: The solution cannot be imported because the queue entity contains a Ribbon definition, which is not supported for that entity. Remove the RibbonDiffXml node from the entit

  • Error message while installing 4.7 IDES

    Hi, we are trying to install sap4.7 sr1 extn set2 on windows 2003 with oralce 9i. when we are trying to run the central instance installation, it was throwing the error SAPMMC.dll is missing. even we have copied the sapmmc.dll file in \windows\system

  • I have a problem with Adobe programm

    Please help, in detail - http://wikileaksru.blogspot.com

  • MAP change large

    Hi,    when receive or return goods with po, The MAP may change large, system will give a message like "Price change amounting to 42.86 % in month 07/2007".    I want to know is any parameters to control  which percent will show this message? and is