Appel de fonction dans un dll

Bonjour,
Je souhaite appeler une fonction coder en c++. Pour celà, j'utilise une dll générer avec Visual C++ 6 et j'utilise labview 8.0.
Je me sert du manuel suivant http://www.ni.com/pdf/manuals/370109b.pdf .
Dans la partie
Preventing C++ Name Decoration
je n'ai pas compris comment comment éditer la partit "extern c"

Bonjour
Je ne comprend pas bien le problème.
Avez vous des difficultés pour la création ou  l'appel de la dll?
Kamal
NI France

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

  • Generer un dll qui contient plusieur fonction dans un seul VI avec labview

    Bonjours
    est ce qu'il ya une possibiliter de cree un seul VI qui contient plusieur fonction et l'integrer dans un seul Dll avec labview
    best regards

    Bonjour
    Merci Eric pour votre reponce ,mais peut être je n'ai pas bien expliqué
    la solution que je connais est que :
    je développe une seul fonction voulût dans un vi propre à elle
    si j'ai besoin de plusieurs fonction je doit développé plusieurs VI
    enfin j'intègre tous les vi dans un seul dll
    ma demande est : est ce que au lieu de développé beaucoup des VI , il y a une solution de rassemblé tous les fonctions dans un seul

  • Comment générer 1 appel de fonction avec une 6014 à la fréquence d'1 SCAN

    Je souhaiterais générer un appel de fonction avec une 6014 E, lors d'un SCAN d'entrées analogiques, à chaque acquisition d'une entrée parmi la série des entrées scannées.
    Pour ça, j'utilise le jeu d'instructions suivant :
    iStatus = Config_DAQ_Event_Message (iDevice, 1, "AI0", 1, 100, 0, 0, 0, 0, 0, 0, (unsigned long)&myCallBack);
    iStatus = Set_DAQ_Device_Info (iDevice, ND_DATA_XFER_MODE_AI, ND_INTERRUPT_EVERY_SAMPLE);
    Ensuite je lance l'acquisition avec SCAN_START.
    Je bascule mon entrée A0 de 0 à 5V, mais rien ne se produit, et je ne rentre jamais dans ma callback.
    J'en déduis 3 hypothèses :
    - Soit il y a un problème dans les nombreux paramètres des instructions pour définir la
    gestion d'événements
    - Soit ma callback n'est pas définie correctement
    - Soit la carte n'est pas prévue pour faire cela...
    Dans tous les cas, si vous avez un élément de réponse, sur l'explicitation des paramètres ou l'utilisation d'une callback en C++ ou en C version Windows (j'ai trouvé des ex mais en DOS), je vous serais très reconnaissant, étant à présent à bout de ressources et de nerfs...
    Merci d'avance

    Bonjour,
    A partir du lien suivant vous trouverez des exemples d'acquisition pour Visual Basic :
    http://search.ni.com/query.html?col=alldocs&qp=%2Bcontenttype%3AExample+%2BSW%3AMSForVB&lk=1&qt=acquisition&layout=Example
    De plus, lorsque vous installez le driver NI-DAQ, des exemples sont à votre disposition.
    Sincères salutations
    Isabelle Jean
    Isabelle
    Ingénieur d'applications
    National Instruments France

  • Appel à une fonction de préchargement

    Bonjour,
    J'ai créé une fonction afin de pouvoir l'appeler dans différents clips de mon animation. La fonction permet de charger une image tout en affichant la progression du chargement. Le problème c'est que l'appel à la fonction marche dans la 1re image de mon animation (endroit de son déclaration) mais pas dans un autre clip.
    voici mon code :
    function preloadimage(cible:MovieClip, xc:Number, yc:Number, id:Number)
         cible.attachMovie("zonepctxt","zonepctxt",cible.getNextHighestDepth()); //Clip contenant un texte dynamique (pct) pour afficher le chargement
         zonepctxt._x = xc;
         zonepctxt._y = yc;
         cible.createEmptyMovieClip("image",cible.getNextHighestDepth());
         image._x = xc;
         image._y = yc;
         image._alpha = 0;
         image.loadMovie("ref/" + id + ".jpg");
         cible.onEnterFrame = function()
              var bt:Number = image.getBytesTotal();
              var bl:Number = image.getBytesLoaded();
              var per:Number = ! bt ? 0 : Math.floor(bl/bt*100);
              zonepctxt.pct.text = "Chargement image : " + per + "%";
              if (per == 100)
                   zonepctxt.pct.text = "";
                   if (image._alpha < 100)
                        image._alpha += 10;
                   else
                        delete cible.onEnterFrame;
    preloadimage(this, 0, 200, 15); //fonctionne correctement dans la 1re image
    _root.preloadimage(this, 0, 200, 15);//ne fonctionne pas dans un clip

    Merci pour votre réponse.
    Je viens d'ajouter la ligne de code
         trace("fonction appelée")
    dans la fonction pour savoir s'il y a vraiment appel à la fonction.
    L'appel à la fonction a bien lieu en utilisant dans tout clip
         _root.preloadimage(this, -480, -70, 15);
    sans rien changer en la déclaration de la fonction.
    Ou en utilisant
         preloadimage(this, -480, -70, 15);
    mais en déclarant la fonction comme globale
         _global.preloadimage = function(cible:MovieClip, id:Number)
    C'est maintenant un problème d'affichage lié apparemment à la relativité des clips que je ne maîtrise pas

  • Quel est mon mot de passe d'administrateur?  Plusieurs fonctions dans "Préférences Systèeme" sont verrouillées et je n'ai pas le mot de passe pour les déverrouiller

    Je viens d'acheter un ordi.
    La boutique où je l'ai acheté a installé Office et me l'a remis.
    Je n'arrive pas à déverouiller certaines fonctions dans "Préférences système".  Quel est mon mot de passe d'administrateur?  Il se peut que j'aie mal tapé mon mot de passe la première fois.  Je n'arrive pas à réinitialiser mon mot de passe...
    Aidez-moi

    Try this link: http://support.apple.com/kb/ht1274
    Resetting the original administrator account password
    Follow these steps to reset a password when there is only one administrator account on the computer, or if the original administrator account needs a password reset. "Original" administrator account refers to the one that was created immediately after installing Mac OS X. If the original administrator password is known, that administrator account may be used to reset the passwords of other administrator accounts using the steps described above. These steps require an optical drive; if your Mac does not have an optical drive and you have a Mac OS X v10.6 Install disc, see below.
    Start up from a Mac OS X Install disc (one whose version is closest to the version of Mac OS X installed).  Usually, you can start from the disc by putting it in your computer, restarting, and holding the C key. Or, put it in the computer and click the Install or Restore icon you see in the disc's main window (after which the computer will start from the disc without you needing to hold C). Or, you can use Startup Manager or the Startup Disk preference pane to select the Install disc.
    Choose a language, click the arrow button to continue,
    Mac OS X v10.6 or later: Choose Password Reset from the Utilities menu.
    Mac OS X v10.5 or v10.4: Choose Reset Password from the Utilities menu.
    Mac OS X v10.3: Choose Reset Password from the Installer menu.
    Tip: If you don't see this menu or menu choice, you're probably not started from the disc yet.
    Note: The default keyboard layout is U.S. English while started from the installation disc. If you use a keyboard layout other than U.S English, use the Input menu (the flag icon on the right side of the menu bar) to select the desired layout before typing a new password.
    Select your Mac OS X hard disk volume.
    Select the user name of your original administrator account.
    Important: Do not select "System Administrator (root)". This is actually the root user. You should not confuse it with a normal administrator account.

  • Intégrer une interface graphique dans un dll

    Bonjour
    j'ai développé une application qui utilise une interface graphique comme interface d'input
    le programme en mode exécutable fonctionne correctement,
    j'ai crée le projet en dll et j'ai essayé de l'utiliser avec le langage (MTL)
    j'ai réussi a lire la fonction et l'exécuté (prouver par des msg popup) mais le problème que je peut pas lancé l'interface graphique , je pense qu'il faut intégrer le ".uir "mais j'ai pas trouvé un moyen
    vous trouvez ci-joint le msg d'erreur lors de l'appelle ; svp qui peut m'aider
    Pièces jointes :
    error in call.JPG ‏134 KB

    Doublon
    Valentin
    Certified TestStand Architect
    Certified LabVIEW Developer
    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;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Erreur 6 à l'exécution de plusieurs fonctions de la DLL "nicaiu.dll" DAQmx

    Bonjour,
    Une application sous VB6 a été développée afin d'utiliser la carte DAQmx (DAQ6250) via la dll "nicaiu.dll".
    L'exécution des fonctions pas à pas s’effectue correctement.
    Le problème intervient lors de l'exécution d'une traite.
    par exemple:
    a: Call DAQmxErrChk(DAQmxCreateTask("", Task))
    b: Line = DEVICE & "/ai" & Channel
    c: Call DAQmxErrChk(DAQmxCreateAIVoltageChan(Task, Line "", DAQmx_Val_RSE, -10, 10, DAQmx_Val_Volts, ""))
    Une erreur 6 (dépassement de capacité) intervient systématiquement à l'exécution de la ligne suivant
    La fonction "DAQmxCreateTask" soit sur la ligne b dans l'exemple ci-dessus.
    Merci de votre aide
    RD

    Bonjour,
    L'erreur 6 correspond dans Visual Basic 6.0 à un dépassement de tableau ou "overflow". Si l'erreur se produit à la ligne b de votre exemple, c'est sans doute que le résultat de la concaténation est trop grand pour être rangé dans la variable "Line".
    Vérifiez que la variable "Line" n'est pas déclarée comme chaîne de caractère de longueur fixe (Dim Line As String * ). Vérifiez également le contenu de la variable "channel" lorsque l'erreur se produit. Vous pouvez également tester votre exemple en affectant un nom de voie de manière statique.
    Quoiqu'il en soit, d'après les informations que vous me communiquez, l'erreur n'est pas liée aux pilotes NI-DAQ. Vous pouvez vous en assurer en récupérant le code d'erreur retourné par les fonctions DAQmx.
    Sincères salutations.

  • Appeler une fonction de mon appli régulièrement en utilisant les événements

    Carte : PCI 6014 E
    Je souhaiterais appeler une callback à intervalles réguliers durant un scan d'entrées analogiques.
    J'utilise "Config_DAQ_Event_Message" avant de lancer mon scan, aucun message d'erreur ne remonte, mais je ne récupère pas mes entrées et je ne rentre pas dans ma fonction. Y a t'il d'autres choses à mettre en place pour que ça fonctionne, ou est-ce que cela ne pourra pas fonctionner ?

    Bonjour,
    Ci-joint vous trouverez un exemple qui pourra vous aider
    Sincères salutations
    Salissou ISSA
    Ingénieur d'applications
    National Instruments France
    Attachments:
    DAQ_Events.zip ‏5 KB

  • Comment appeler un movie dans différents niveaux (inférieur-supérieur)...

    Bonjour,
    je vous met en situation : (http://cocopub.com/ninon/index.html)
    J'ai un document maître qui se nomme structure.swf
    J'appel une section, collections.swfà l'aide d'un loadmovie dans un clip du nom de contenant_collections
    Une fois dans collections.swfqui se trouve en fait dans structure.swf, je désir appeler l'une des 7 sous-sections dans un clip du fichier collections.swfnommé contenant_colliers (pour la sections colliers, fichiers colliers.swf).
    Je peux afficher l'une des 7 sections sans problèmes, mais lorsque je désir changer de sous-sections et que je clic sur le bouton, rien ne se passe. Mes boutons pour mes 3 sections pricipales fonctionnent, mais pas les sous-sections.
    C'EST URGENT !!!!
    Merci pour tous de votre aide,
    Marc-André

    There is a French language forum at http://forums.adobe.com/community/international_forums/francais

  • Arret d'une fonction dans un onglet

    Bonjour a tous j'ai cree un onglet avec differentes pages qui seront des fonctions de mon application. L'un d'entre elle est une fonction continue qui va jouer un son en permanence. Je me suis aide de l'exemple trouve dans labview, mais je voudrais savoir comment faire pour sortir de cette lecture en permanence. Merci de votre aide.
    Pièces jointes :
    gen_ff.zip ‏328 KB

    Bonjour,
    Voici un petit exemple qui vous montre le principe.
    Lorsque l'on est sur l'onglet 2, on lance une boucle qui tourne à 500ms. Si on change d'onglet sur la face avant, cela vient arrêter la boucle, on rentre alors dans la condition de l'onglet sélectionné.
    Cordialement,
    Olivier L. | Certified LabVIEW Developer
    Pièces jointes :
    Stop boucle onglet.vi ‏11 KB

  • Pourquoi une animation responsive (en% par rapport à la fenêtre) fonctionne dans le preview de Edge et ne marche plus une fois importée en .oam dans MUSE ?

    Pourquoi une animation responsive (en% par rapport à la fenêtre) fonctionne et s'adapte à la bonne taille dans le preview de Edge et ne marche plus une fois importée en .oam dans MUSE (taille fixe) ?
    Merci à la communauté

    Illustrator CC uses the Pantone Plus series, there is no CMYK definition for the spot colours in these series.
    The CMYK conversion is now based on the CMYK profile in your Color Settings.
    This is a good thing, since most of the Pantone colours cannot be accurately reproduced in CMYK, colour management provides a way to simulate the spot colours as close as possible for your combination of ink, paper and press.
    The CMYK values that were previously given by Pantone were just one way of simulating the spot colours and would give different results when another ink, paper, press combination was used.
    Sometimes the CMYK values from Pantone were completely off and you give a perfect example with the Pantone 1797 U colour.
    Printing that ink on uncoated stock would never give you such a bright saturated red as the Pantone provided CMYK values would suggest
    If you want to have a better preview of the colour, use the Overprint Preview option, that comes closer to the final printed result. The Overprint preview in CC and CS versions give s you an almost identical preview (almost because the Lab values differ slightly).
    There are ways to use the old libraries, but why should you if Pantone itself stopped giving CMYK numbers?

  • 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

  • Appel d'une fonction Dll avec un tableau de long en parametre

    Je dois communiquer sous labview avec un DLL comportant de fonction importante definie ainsi
    long DLLCALL DLL_Read( long Array[]);
    long DLLCALL DLL_WRITE( long Array[]);
    ces deux fonction prennent en parametre un tableau de 30 long. ...
    je ne sais comment configurer sous labview l'appelt à ces deux fonctions?
    quelqu'un peu m'aider (en français S.V.P)

    Bonjour,
    Pour passer un tableau de données de type long d'une DLL sous LabVIEW, vous devez configurer le noeud d'appel "Appeler une fonction d'une DLL" de la manière suivante:
    * function name = FuncName
    * parameter = arg1
    * type = array
    * data type = signed 32-bit integer
    Le prorotype équivalent est: void FuncName (long *arg1).
    Vous trouverez de nombreuses informations sur l'intégration des DLLs dans LabVIEW au lien ci-dessous:
    * Integrating DLLs
    http://zone.ni.com/devzone/devzone.nsf/webcategories/E2A99E7E10D5725D862567AC004F0A53
    Bonne continuation.
    Matthieu Gourssies
    National Instruments France

  • Probléme dll

    Bonjour,
    J'ai un probléme avec ma dll
    // interact2.cpp //
    #include "stdafx.h"
    #include "interact2.h"
    #include "interact2Dlg.h"
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    extern "C" void __declspec(dllexport) InitInstance();
    BOOL APIENTRY DllMain( HANDLE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
        return TRUE;
    // CInteract2App
    BEGIN_MESSAGE_MAP(CInteract2App, CWinApp)
     //{{AFX_MSG_MAP(CInteract2App)
      // NOTE - the ClassWizard will add and remove mapping macros here.
      //    DO NOT EDIT what you see in these blocks of generated code!
     //}}AFX_MSG
     ON_COMMAND(ID_HELP, CWinApp:nHelp)
    END_MESSAGE_MAP()
    // CInteract2App construction
    CInteract2App::CInteract2App()
     // TODO: add construction code here,
     // Place all significant initialization in InitInstance
    // The one and only CInteract2App object
    CInteract2App theApp;
    // CInteract2App initialization
    BOOL __declspec(dllexport) CInteract2App::InitInstance()
     AfxEnableControlContainer();
     // Standard initialization
     // If you are not using these features and wish to reduce the size
     //  of your final executable, you should remove from the following
     //  the specific initialization routines you do not need.
    #ifdef _AFXDLL
     Enable3dControls();   // Call this when using MFC in a shared DLL
    #else
     Enable3dControlsStatic(); // Call this when linking to MFC statically
    #endif
     CInteract2Dlg dlg;
     m_pMainWnd = &dlg;
     int nResponse = dlg.DoModal();
     if (nResponse == IDOK)
      // TODO: Place code here to handle when the dialog is
      //  dismissed with OK
     else if (nResponse == IDCANCEL)
      // TODO: Place code here to handle when the dialog is
      //  dismissed with Cancel
     // Since the dialog has been closed, return FALSE so that we exit the
     //  application, rather than start the application's message pump.
     return FALSE;
    J'ai donc rajouté ce qui en rouge et j'ai builder en dll ce fichier.cpp
    Cependant quand j'appelle cette fonction dans labview (Call librarie function node)
    Pourriez vous me dire ou est mon erreur?
    Merci

    Salut,
    J'utilise labview 8.0, je souhaite à partir d'une application Visual C++, retranscrire la plupart des fonctions pour pouvoir communiquer avec un robot.
    Le code en c++ fonctionnant avec mon robot, il me semblait plus judicieux de faire des appelle de fonction du code c++ dans labview, comme
    par exemple OnInit2() qui permet d'initialiser le robot.
    J'envoie le code source, la dll est dans le fichier Source\Debug et se nomme interact2.dll
    Je l'ai compilé avec Visual c++
    Pouvez vous me dire si ma dll est bien crée? Merci
    Pièces jointes :
    codesource.zip ‏2552 KB

Maybe you are looking for

  • Photoshop elements update error

    My photoshop elements 12 will not update.  Like others it gives error message.  Possible solution is download drivers?   The problem is I don't know what to do with these files or if I should even extract them.  Below is a screen shot. The files belo

  • Should the passwords in 'System keychain' (in Keychain Access) normally be accessible to the owner/administrator?

    Should the passwords in 'System keychain' (in Keychain Access) normally be accessible to the owner/administrator or not? If not, would it be possible to gain access via the Root Account? I can access the passwords in 'Login keychain' (in Keychain Acc

  • Partitioned table takes more time to load

    Hi, Recently I have been test loading a partition table (Datawarehouse fact table). However, I notice almost 2X to 2.5X jump in timing compared to the non-partitioned table. The partition is on the TIME Key on the basis of monthly range. Since this k

  • Can't get automatic updates

    When I get an announcement for a software update, I getthe following error message: We have activated the domain ni.com for free access, but we use a proxy server. Please tell me what I need to do to prevent these error messages from coming. Thanks!

  • Newbie needs help with color profiles

    somewhat new to digital photography and send most of my stuff to local lab (Costco) when needing to print. I have a mac, with Leopard, and use Lightroom to export to jpgs and upload to the lab site. Simple enough, but I noticed their site had the icc