LabView 3.1: létrehozni a DLL C-Dev-C + + és hívja LabView
Szia, fogok írni egy egyszerű példa egy egyszerű módja annak, hogy hozzon létre felfedezett DLL (Dynamic Link Libraries), a C, majd tudniuk hívni a LabVIEW, a példa a pop a "Hello World". További gond az nekem, hogy hozzon létre egy DLL-t (mert az egyetlen dolog, amit megadott össze közvetlenül a gépi kód könyvtárak rögzített), hogy hívja a C funkciót LabView, mivel ez megtörtént egyszerűen a Call Library Function Node VI.
A National Instruments három oldalnyi, hogyan kell egy hívást, hozzon létre egy C fájlt, és építeni a DLL, azt tette az első két lépést, de a harmadik szükséges a program Microsft Visual C + + 6.0, hogy van, így Még, hogy azokat a lépéseket megtenni, itt hagyom az oldalt itt időközben.
De tudok engedi szabályokat létrehozni a saját könyvtárak és futni, de remélem tetszik ez a példa, hogy megértsük ezt az egész kérdést a DLL. Azt hiszem, vannak olyan útmutatók, hogyan lehet DLL Dev, tehát ne úgy, mintha ez az egyik, azért is, mert én nem olvasok, hogy még sem így azt hiszem, baj van összeállításakor a saját kód. C fejlécét. H. Def. Tudna ajánlani más észrevételek egy linkre, hogy segítsen létrehozni a DLL C / C + + könnyen, bármilyen programot, majd néhány, ha LabView magyarázza sokkal jobb.
- 1. lépés: A telepített Dev-C + + DLL és hozzon létre
A példa, hogy feltettem a 4.9.9.2 verzió, akkor láthatja, mi áll itt .
Hogy hozzon létre egy dll file-> name-> Project
Válassza ki a DLL, válasszon nyelvet a C, és tegye a projekt nevét az ilyen HelloDll. Be kell lépni a projekt két fájl automatikusan dllmain.cy dll.h. Ha a kiválasztott C + +-ből a két arichivos de a Hello World példa.
Archívum. C (Én nem váltja, vagy az első sor):
/ * Csere "dll.h" a neve a fejlécben * /
# Include "dll.h"
# Include <windows.h>
# Include stdio.h
Stdlib.hDLLImport HelloWorld void ()
{
MessageBox (0, "Hello World a DLL-t! \ N", "Hi", MB_ICONINFORMATION);
}APIENTRY BOOL DllMain (HINSTANCE hinst / * Könyvtár példányának leírója. * /,
DWORD ok / * Ok ez a funkció kerül meghívásra. * /
LPVOID fenntartva / * Nem használt. * /)
{
kapcsoló (ok)
{
Amennyiben DLL_PROCESS_ATTACH:
törni;DLL_PROCESS_DETACH eset:
törni;DLL_THREAD_ATTACH eset:
törni;Amennyiben DLL_THREAD_DETACH:
törni;
}/ * TRUE értékkel tér vissza siker esetén, FALSE * /
return true;
}
A. H:
# Ifndef _DLL_H_
# Adjuk _DLL_H_# Ha BUILDING_DLL
__ # Adjuk DLLImport declspec (dllexport)
# Else / * Nem BUILDING_DLL * /
__ # Adjuk DLLImport declspec (dllimport)
# Endif / * Nem BUILDING_DLL * /DLLImport HelloWorld void (void);
# Endif / * _DLL_H_ * /
Ez van, most már nem kell írni semmit, csak megy futtatni-> compile vagy Ctrl + F9 vagy az ikon színe cudraditos fent bal és mi a generált DLL. Talán arra kéri, hogy tartsa a projektet. Dev és a generált fájlokat. C. H, a DLL mentésre kerül ugyanabba a mappába, vagy ha úgy adja meg nevét és a projekt-> projekt opciók-> Építőipar tudod megváltoztatni őket.
- 2. lépés: Hozzon létre a VI
Veszel egy új, VI, menj a vázlat, és elhelyezni a Call Library Function Node vi, megtalálható conectivity-> könyvtárak és végrehajtható. És ez, ez ilyen egyszerű, de jó a RUN better'll munka valósult meg a szerkezet az arcon, ha igaz, egy gomb-vezérelt boolean, és minden egy loop hurok vezérelhető is megáll ugyanazt a gombot.
- 3. lépés: Call Library Function Node kitöltése
Adják kétszer hatodik vagy második gomb készlet:
- A könyvtár neve vagy elérési útja van beállítva az elérési utat a DLL
- Attól függően, és HelloWorld fogja írni (de ez megy rosszul azt hiszem)
- Calling egyezmények Ct,
- Érvénytelen paraméter, hogy mi magunk írta (azaz nem tér vissza semmit)
- Típusa void.
És ez alatt a forma a funkció void HelloWorld (void); Ha ez nem egy függvény típusú VI visszatérő semmi sem változni, ahogy tud csatlakozni bemenetek és kimenetek.
Vége van-tulajdonban lévő és a szerencse.



















































Helló
Csinálok nekik a DLL-TurboExploer http://www.turboexplorer.com/ amely ingyenes, de a tömege 200 mega. Megteheti az ingyenes fordító Borland ajánlatok (5,5).
Üdvözlet!
nagyon szépen köszönöm! Én már nagyon hasznos.
Helló, hogy az ilyen!
Szeretnék csatlakozni egy Canon G9 cmaara hatalom lövés és kap a kép ablakon keresztül a LabVIEW, nyilván kell egy kis dll fájlokat az ilyen típusú intefaces .... Tudsz segíteni, vagy adni nekem néhány tippet.
Cesar Jimenez Calvillo.
Szia Caesar.
Az első dolog, amit látok, könnyebben meg a kamerát kellett látni, mint egy webkamera szoftver vagy a csatlakozó látható a "Sajátgép", mint webkamera?, Ha olyan biztos tudod használni az irányítószámot Labview 0,5 Vision: kód Egyszerű USB kamera
Az index és a neve a kamera kiválasztása.
Ha nem, semmilyen szoftver vagy nem működik az USB-kábelt (ami bizonyára jól kapcsolódik) célja egy általános illesztőprogram fog szolgálni, webkamera, vagy egy program importálni fényképeket közvetlenül a kameráról ... Nem tudom, a helyzet az, hogy ha látni videót a PC vele biztos, hogy szerepel a listán.
Nem hiszem, hogy könnyebb megtalálni (sokkal kevésbé tudják) egy dll, hogy olyan funkciót tartalmaz, amely meghívja a képsorozat úgy működik, mint egy videó. Ha úgy találja, amint tudjátok keresztül függvényhívás csomópont (kideríteni, hogy milyen adatokat kell hívni a funkciót, vagy vissza, ha a tömb, ha a tömb mutató, stb ..., hogy meghatározza a hívás).
Szép új, mint használ a könyvtár ugyanolyan dev egy társ lengauje C + +
Nos, mint minden könyvtár, fel # include könyvtár (háromszög között és idézetek alapján a helyét a fájlt, ha az alapértelmezett mappába, vagy nem), és már most, hívja a függvényt a programban.
Továbbá azt találtam, hogy csak az üzembe. C előtt a funkciót akarunk exportálni, amikor meghatározzák a funkciókat az első, a kulcsszó __ declspec (dllexport) már nyilvános funkciót, majd adni a gombra, hogy dll-program vagyunk utlizando fordításra. Ez a kulcsszó kismértékben eltérhetnek Szerintem egyik programról a másikra, de a Google gyors.
Hé hé tudok csinálni egy építő programot, és használja azt tudnád írni a LabVIEW 6,1? Meg kell tennem egy programot a LabVIEW, de látom, hogy sokkal bonyolultabb vagyok szokva, hogy mindig a C nyelv
Vajon nagyra értékelik velem szóba sem jöhet!
Előre is köszönöm!
Használhatja bármilyen programot, hogy a DLL, ha tudod, és mit lehet tenni. Annak bizonyítására, hogy én fel közfeladatokat, hogyan használjuk a kis programot Dependecy Walker.
És ha a LabVIEW 6.1 ugyanígy hívni egy dll, azt hiszem megváltoztatja azt, ahogyan te és a 7-es verzió óta, de van a Call Function Node Libray egyaránt. Szintén elkerülhető a kódex Node Interface (CIN), amely szintén arra szolgál, hogy végre kódot, de az a tény, hogy bármennyire is olvastam én még nem enterder hogyan működik.
Azt se felejtsük el, amelyek segítségével C kód vagy nyelv ugyanolyan módon teszi strukturált node struktúra, de nem tudta, vagy ide tartozik a funkció hívásokat ... És MathScrpt Node matlab nyelvet, de ez azt hiszem, szükségünk van a LabView, amely magában foglalja a teljes ...
Hát itt van egy angol nyelvű útmutatót, hogy hívja a külső kódot I LabVIEW 6.0 és 6.1 is használja a csomópont előtt, ahogy ön is mondta, hanem egy hosszabb, meg kell teremteni a dll az elejétől ...
http://www.ni.com/pdf/manuals/370109a.pdf
Azt tudná magyarázni egy kicsit jobban, mint én mehet a C + + nyelvet LabVIEW?
Vezesse át nem adja, akkor add hozzá a kód.
- Ha vannak olyan funkciók, vagy ugrik, vagy bármi szokatlan szerkezetek csak akkor, ha .. mást .. a ... Formula Node majd.
- Ha vannak olyan funkciók, valamint a részletesebb program létrehoz egy DLL és hívja meg a hívás funkció Node Libray (a segítő eszközök »Import» Shared Library (. DLL) jól jön).
Node Interface kód nem tudom, hogyan használják fel, íme egy példa: Példa CIN a LabVIEW és az MS Visual C + + 5,0 .
Külső kód LabVIEW - CIN / DLL - Kiindulópont
- Node MathScript matlab kódot. Irodám, akkor szükség van a matlab.
- Még több C? Azt hiszem, hogy LabWindows CVI pasate.
hi eXite akarta tudni, hogy a lehetőség másik irányba, hogy amit én, hogy ha tudok, mit tegyek, hogy a LabVIEW C. A kérdésem az, hogy amit csinálok az Labview tudom csinálni használja azt a mikro-
Most az a kérdés, én tettem többször is, de amit én eddig összegyűjtött, vonalát követve FPGA, hogy azt hiszem nem.
Ütemezése FPGA LabView ha minden programot, és adott egy dossziét állítanak össze átalakítására VHDL vagy az egyik, hogy elfogadja az FPGA (olyan egyszerű, mint az NXT), de csak akkor érvényes, 4 vagy 5 modellek és FPGA A modul ára egy csomó pénzt. Azt hiszem, a mikro változata ARM ¿? Nem emlékszem, ugyanezt teszi.
Amennyire lehet kapni egy meghatározott logikai, klaszter ... C-ben azaz, ha csatlakozik a klaszter (például, hogy több és bonyolultabb dolog), hogy a Call Library Function Node (először be kell menni és tegye bele a paraméterek típusát Adpat típus) adsz a második gombot a lehetőségek vannak Vis és bejön létrehozása. C File. Hát mondom, hogy csak akkor kap a kezdetektől egy fájlban. C és töltse ki a teljes kódot.
Mint mindig lehetősége LabView CVI, de ez, hogy a program a C (nem vizuális) és arra szólítja fel a LabVIEW könyvtárak felületen gombok subVI.
Helló,
Newbie vagyok a DLL kérdések, de kíváncsi vagyok, ha mind a Matlab MEX fájlok, elolvastam hasonló a DLL, azt is használhatja őket LabVIEW. Azaz, van egy C kód q bonyolult és már használják a Matlab MEX fájlok, és tudom használni a LabVIEW. Nem, ha lehetséges, vagy ha jobban kell átalakítani, hogy a kódot a C DLL módszerekkel már javasolt.
Mert eddig még soha nem olvastam semmit dll fájlokat Matlab MEX nevezik. de nézett NI.com a kulcsszavakat "MATLAB mex" hagyta nekem a következő:
* VI mex segítségével NI LabVIEW Math Interface Toolkit Calling LabVIEW VI The MathWorks Inc. MATLAB ® szoftver környezet
* Itt úgy gondolom, hogy a csatlakozáshoz között Simulink és a LabVIEW LabVIEW Simulation Interface Toolkit
Ahhoz, hogy a MEX LabVIEW nem hagyott semmit, olyan gyorsan ment, és soha nem olvassák el, hogy csatlakozzanak a LabView könyvtárak, de persze én még soha nem ment másképp, vagy a szokásos AutoCAD fájlok ... Szóval ha lehet lefordítani a C minden program, és nem Dll megoldás.
*
[...]
Jó ideje azt követően, hogy sikerül létrehozni a dll kell hivatkozni LabVIEW nem számít, melyik fordítót használja, ez megnyitja a lehetőségek világa, hanem egy olyan világot baj, különösen akkor, ha amit csinálunk, az több, mint "hello world". Dolgoztam nehezen használható DLL összeállított mesterséges neurunales hálózati könyvtárak használt LabVIEW.
Az első probléma, adattípusok, amikor szükség van a könyvtárak dll átadott paraméterek összetett adattípusok, mint a nagy struktúrák C + +, a feladat egy kicsit lehangoló, hogy egy kicsit foglalkozni ezekkel az akadályokat, hivatkozást létrehozni függvények C + +, amely tudja kezelni adatszerkezetek c + + és a LabVIEW tételéhez ehető.
A második probléma, memória kezelése, néha, különösen, ha elkezdesz programozni, akkor hajlamosak azt gondolni: "Ha már fordítottál, mert ez jól", de ha létrehoz egy hurkot, ahol LabVIEW funkciót aktiválja ezerszer másodpercenként , elhelyezve egy dll, és ha ez a funkció nem tesz megfelelő memória használatára akkor egyszerűen küldje vissza a rendszer instabil. Annyira boldog, hogy miután látom, hogy a RNS tökéletesen működött, én esett néhány másodperc decepcioncuando látott mindent, és megállt, mint a számítógép lassú lett. Megnéztem az összes kód a C + +, destruktor, kivitelezők, úgynevezett new és a delete, de nem talált problémát.
Egyetértek veled, az az igazság, mert nem kap az adatokat egy dll-ben LabView, ha tölteni a méretét, amelynek célja valami mást ... hirtelen teszi a LabVIEW repedés és bezárja hirtelen. És lassan világossá, legalábbis 8.6.1.