LabVIEW 3,1: luua DLL C koos Dev-C + + ja LabVIEW helistada

Tere, ma kavatsen kirjutada lihtne näide lihtne viis luua avastas DLL (Dynamic Link Libraries) in C ja seejärel on võimalik helistada LabVIEW, näiteks on pop "Hello World". Rohkem vaeva on minu jaoks luua DLL (sest ainus asi, antud on kompileeritud otse masina koodi raamatukogude määratud), helistada C funktsiooni LabVIEW, kui seda tehakse lihtsalt Call raamatukogu funktsiooni Node VI.

On National Instruments on 3 lehekülge kuidas helistada, luua C faili ja ehitada DLL, tegin esimesed kaks sammu, kuid kolmas on vaja programmi Microsft Visual C + + 6.0, et mul on nii veel välja tuua samme teha, ma jätan lehe siin vahepeal.

Aga ma ei lase sul luua reeglid oma raamatukogud ja joosta, kuid ma loodan teile meeldib see näide, et mõista kogu see teema on DLL. Ma arvan, et seal on õpetused, kuidas teha DLL koos Dev, nii ei teeskle, et see on üks, ka, sest ma ei lugenud seda veel nii ja nii ma arvan, et mul on kompileerimisel probleeme oma koodid. C päised. H. Def. Kas soovitaksite muud kommenteerida link, et aidata luua DLL C / C + + hõlpsasti mis tahes programmi ja siis mõned kui LabVIEW selgitab palju parem.

  • Samm 1: Kas paigaldatud Dev-C + + ja luua DLL

Näiteks, et ma panin on versioon 4.9.9.2, näed, mis on saadaval siin .

Luua dll file-> name-> Project

Vali DLL, valige keel, C ja pane projekti nimi nagu HelloDll. Pead väljumiseks projekt 2 faili automaatselt dllmain.cy dll.h. Kui valitud C + + välja need 2 arichivos kuid näiteks Hello World.

Arhiivi. C (ma ei ole asendatud või esimene rida):

/ * Asenda "dll.h" nime oma päise * /
# Include "dll.h"
# Include <windows.h>
# Include stdio.h
Stdlib.h

DLLImport void HelloWorld ()
{
Teatekast (0, "Hello World DLL! \ N" "Tere!" MB_ICONINFORMATION);
}

APIENTRY TÕEVÄÄRTUS DllMain (HINSTANCE hInst / * Library näiteks käepide. * /,
DWORD põhjus / * Põhjus, miks see funktsioon on nn. * /
Reserved LPVOID / * Ei kasutata. * /)
{
switch (põhjus)
{
Kui DLL_PROCESS_ATTACH:
murda;

DLL_PROCESS_DETACH puhul:
murda;

DLL_THREAD_ATTACH puhul:
murda;

Kui DLL_THREAD_DETACH:
murda;
}

/ * Tagastab TRUE on edu, FALSE jätmise kohta * /
tagasi TRUE;
}

. H:

# Ifndef _DLL_H_
# Define _DLL_H_

# Kui BUILDING_DLL
# Define DLLImport __ declspec (dllexport)
# Else / * Ei BUILDING_DLL * /
# Define DLLImport __ declspec (dllimport)
# Endif / * Ei BUILDING_DLL * /

DLLImport void HelloWorld (void);

# Endif / * _DLL_H_ * /

Ongi kõik, nüüd pole vaja midagi kirjutada, lihtsalt minema joosta-> compile või Ctrl + F9 või ikooni värvi cudraditos eespool vasakule ja me loodud DLL. Võib-olla ta küsib, et hoida projekti. Dev ja loodud faile. C. H, DLL salvestatakse samasse kausta või kui sa oma nime ning projekti-> Projekti valikud-> ehitus saab neid muuta.

  • Samm 2: Loo VI

Võta uus VI, minge plokkskeem, ja panna Call raamatukogu funktsiooni Node vi, võib leida conectivity-> raamatukogud ja käivitatavad. Ja see, et see on nii lihtne, kuid hea RUN töö better'll kasutusele struktuuri nägu kui Tõsi, nupp-kontrollitud boolean ja kõik sees loop Loop, mida saab kontrollida ka lõpe sama nuppu.

  • Samm 3: Call raamatukogu funktsiooni Node Täitke

Seda manustatakse kaks korda kuus või 2. nuppu set:

- Raamatukogu nimetus või tee on määratud tee DLL

- Sõltuvalt HelloWorld ja siis kirjutada (aga see läheb halvasti ma arvan)

- Üleskutse konventsioonide C oleme

- Näitaja tühine, et me kirjutasime end (st ei tagasta midagi)

- Tüüp tühine.

Ja ongi Allpool on kujul funktsioon void HelloWorld (void); Kui see ei sõltunud tüüpi VI tagasi midagi muudaks nii saate ühendada sisendeid ja väljundeid.

See on üle-run ja õnne.

Blogger Post Facebook WordPress E-mail Osa
PDF Creator    Saada artikkel PDF formaadis   

17 Comments to "LabVIEW 3,1: luua DLL C koos Dev-C + + ja LabVIEW kõne"

  1. yelinna ütleb:

    Tere
    Ma teen neid DLL koos TurboExploer http://www.turboexplorer.com/ mis on tasuta, kuid kaalub 200 megs. Võite teha ka koos tasuta koostaja Borland pakkumisi (5,5).

    Tervitused!

  2. Cristina ütleb:

    tänan teid väga! Mul on olnud väga kasulik.

  3. Cesar Jimenez ütleb:

    Tere, et selline!

    Ma tahan ühendada Canon Power Shot G9 cmaara ja saada pilt läbi akna LabVIEW, ilmselt pean mõned dll faili seda tüüpi intefaces .... Kas saate aidata või mulle mõned näpunäited.

    Cesar Jimenez Calvillo.

  4. weeberp ütleb:

    Hi Caesar.
    Esimene asi, mida ma näen, on kergemini teie kaamera oli näha seda webcam tarkvara või pistik võib näha "My Computer", nagu webcam?, Kui nii kindel, et saate kasutada postiindeks LabVIEW Vision 0,5: kood lihtne USB kaamera
    ja indeks näitab nime kaamera valida.
    Kui ei, siis ei ole tarkvara või ei tööta USB kaabel (mis kindlasti ühendab ka) püüab üldine juht, mis toimib veebikaamera või programmi importida fotosid otse kaamera ... Ma ei tea, kui on see, et kui te näete video vahendusel PC sellega teatud, mis on nimekirjas.
    Ma ei usu, oleks lihtsam leida (palju vähem teha) dll mis sisaldab funktsiooni, mis kutsub pilti jada, mis toimib nagu video. Kui leiate, nagu te teate läbi funktsioon kõne sõlme (teada saada, milliseid andmeid Sa pead kutsuma funktsiooni või siis tagasi, kui massiiv, kui massiivi pointer jne ... määratleda kõne).

  5. Uyuni Kenjin Joe ütleb:

    Kena uus, näiteks kasutatakse raamatukogu sama dev koos co lengauje c + +

  6. weeberp ütleb:

    Noh, nagu mõni raamatukogu, pane # include raamatukogu (vahel kolmnurga ja tsitaadid põhinevad faili asukoht, kui vaikimisi kausta või mitte) ja juba helistada funktsioon programmis.
    Lisaks olen leidnud, et panna alles. C ees funktsioon me tahame eksportida, kui me defineerime funktsiooni alguses, märksõna __ declspec (dllexport) on juba avalik funktsioon, siis antud nuppu, et luua dll programm oleme utlizando koostamise. See märksõna võib olla veidi erinev ma arvan ühest programmist teise, aga google on kiire.

  7. Ray ütleb:

    Hei hei ma saan teha programmi ehitaja ja kasuta seda nagu kirjeldada LabVIEW 6,1? Mida ma pean tegema programmi LabVIEW kuid minu arvates on keerulisem Ma olen harjunud alati C keel

    Oleksin väga tänulik mulle kõne allagi!
    Tänud ette!

  8. weeberp ütleb:

    Te võite kasutada suvalist programmi teha DLL, kui tead ja mida saate teha. Tõestada, kas panin avalikke ülesandeid, kuidas ma kasutan vähe programm Dependecy Walker.
    Ning kui LabVIEW 6,1 saab teha sama helistada dll, ma arvan, et see muudab seda, kuidas te seda teete ja koht, alates versioonist 7, kuid teil on kõne funktsioon Node TTÜ Raamatukogu samasugused. Samuti väldib kood Interface Node (CIN), mis ühtlasi täidab koodi, kuid asjaolu, et kui palju ma loen ma pole enterder kuidas see toimib.
    Samuti pidage meeles, mida saab kasutada C-või keeles samamoodi teeb ehitatud sõlme struktuuri, kuid ei saanud panna siia kuuluvad või funktsioon nõuab ... Ja MathScrpt Node MATLAB keel, aga seda ma arvan, et peame LabVIEW, mis sisaldab terve ...
    Noh siin on käsitsi inglise helistada välise koodi LabVIEW mul 6,0 ja 6,1, me kasutame sõlme nagu te ütlesite enne, kuid pikem, samuti luua dll algusest peale ...
    http://www.ni.com/pdf/manuals/370109a.pdf

  9. Martin ütleb:

    Ma võiks seletada natuke parem kui ma minna c + + keelt LabVIEW?

  10. weeberp ütleb:

    Lükka edasi ei liigu, siis saad lisada koodi lisada.
    - Kui on funktsioone, või hüppab, või midagi ebatavalist struktuure ainult juhul, kui .. muidu .. for ... siis Formula sõlme.
    - Kui on funktsioone ja rohkem töötada programm loob DLL ja nimetavad seda koos kõne funktsioon Node TTÜ Raamatukogu (helper Tools »Import» Shared Raamatukogu (. DLL) on mugav).
    Kood Interface Node ei tea, kuidas seda kasutatakse, siin on näide: näide CIN koos LabVIEW ja MS Visual C + + 5,0 .
    Väline kood LabVIEW - CIN / DLL - Lähtepunkt
    - MathScript Node MATLAB koodi. Minu ametkond, peate MATLAB.
    - Tahad rohkem C? Ma arvan, pasate et LabWindows CVI.

  11. Federico ütleb:

    hi exite tahtis teada, kas võimalus teistpidi, millele ma, et kui ma saan mida ma teha LabVIEW et C. minu küsimus on, et mida ma tegema LabVIEW ma ei kasuta seda ka micro

  12. weeberp ütleb:

    Nüüd küsimus, olen ma teinud mitu korda, kuid mida ma olen siiani, pärast rida FPGA on see, et ma ei usu.
    Ajastada FPGA kui kõik LabVIEW programmi ning arvestades koostada faili konverteerimiseks VHDL või 1, et aktsepteerib FPGA (sama lihtne kui NXT), kuid kehtib ainult 4 või 5 mudeleid ja FPGA moodul maksab palju raha. Ma arvan, et mikro versiooni ARM ¿? Ma ei mäleta, teeb sama.
    Nii palju kui saad boolean määratletud klastri ... in C. st kui sa ühendada klastri (näiteks kellel on rohkem asju ja keeruline), et Call raamatukogu funktsiooni Node (1. sa pead minema ja pane parameetrite tüübi Adpat Type) annad teisele nupule, et näha võimalusi nad on VIS ja vajutad Loo. C File. Noh ma ütlen teile ainult saada algavad faili päist. C täita kogu oma koodi.
    Nagu alati on võimalus LabVIEW CVI, kuid see, kuidas programmi C (mitte visuaalselt) ja helistab LabVIEW raamatuid interface nupud subVI.

  13. Fabian ütleb:

    Tere,
    Olen algaja DLL küsimusi, aga ma ei tea, kas nii Matlab MEX faili, olen aru saanud on sarnased DLL, võin kasutada ka neid LabVIEW. See tähendab, et mul on kood C q on keeruline ja on kasutatud Matlab kui MEX faili, ja ma kasutan seda LabVIEW. Mitte kui võimalik või kui ma peaks paremini ümber, et koodi C DLL meetoditega te välja pakkunud.

  14. weeberp ütleb:

    Sest seni ei ole kunagi lugenud midagi dll faile Matlab MEX kutsutud. kuid vaadates NI.com koos märksõnadega "MATLAB mex" on jätnud mulle järgmist:

    * VI ​​mex kasutades LabVIEW Math Interface Toolkit Calling LabVIEW Vis alates MathWorks Inc MATLAB ® tarkvara keskkonnas

    * Siin ma arvan, et teeb seost SIMULINK ja LabVIEW LabVIEW Simulation Interface Toolkit

    Kasutada mex sisse LabVIEW ei ole jätnud midagi nii kiiresti ja ma ei ole kunagi läks lugemine suhelda LabVIEW raamatukogud, kuid loomulikult ma polnud kunagi läinud teisiti, või tavaline AutoCAD faile ... Nii et kui saate koostada C ühtegi programmi ja teha dll on lahendus.
    *

  15. Fernando_H ütleb:

    Hea ajavahemiku jooksul pärast seda, et õnnestub luua dll toetuda LabVIEW ei ole oluline, mis kompilaator te kasutate, see avab maailma võimalusi, kuid ka näha maailma probleeme, eriti kui seda, mida me teeme, on rohkem kui "tere". Olen töötanud raske kasutada dll teada koostatud kunstlik neurunales võrgustik raamatukogud kasutamiseks LabVIEW.
    Esimene probleem, andmetüübid, kui vajate raamatukogud dll möödunud parameetrite kompleks andmetüübid nagu suur struktuuride c + +, ülesanne on natuke piinlik tegeleda natuke nende takistuste, luua link toimib c + +, mis saavad hakkama andmestruktuurid c + + ja LabVIEW muuta need söödavad.
    Teine probleem, mälu haldamine, mõnikord, eriti kui hakkad programmeerimine, siis kipuvad arvama, "kui olete koostanud, sest see hästi," aga kui teil luua loop LabVIEW kus funktsioon on tuginenud tuhandeid kordi sekundis , majutatud dll ja kui see funktsioon ei tee õiget kasutamist mällu saab lihtsalt tagasi süsteemi ebastabiilseks. See on nii et pärast on hea meel näha, kuidas RNA töötas täiuslik, ma kukkusin mõne sekundi decepcioncuando nägi kõike ja peatada, sest arvuti oli aeglane. Ma kontrollisin kõik koodi c + +, tõrjevahendid, ehitajad, nn uus ja kustutada, aga ei leidnud probleeme.

  16. weeberp ütleb:

    Nõustun teiega, tõde, sest see ei saada andmeid dll LabVIEW, kui veedate koos suurust, mille eesmärk on midagi muud ... äkki muudab LabVIEW crack ja sulgub ootamatult. Ja aeglaselt selge, vähemalt 8.6.1.

Jäta vastus

(nõutav)

(nõutav)

CAPTCHA Image
Värskenda Pilt
*