LabView 3.1: ustvariti DLL v C z Dev-C + + in LabView pokličite

Pozdravljeni, bom napisal preprost primer enostaven način za ustvarjanje odkrili DLL (Dynamic Link Libraries), v C, nato pa lahko pokličete v LabView, primer je pop od "Hello World". Več težav je za mene za ustvarjanje DLL (ker je zgolj stvar, zbrani neposredno v knjižnice strojnih določene kode), da pokličete funkcijo C v okolju LabVIEW, kot se to stori brez težav s knjižnico klicev Funkcija Node VI.

Na nacionalni instrumenti so tri strani, kako narediti klic, ustvarite datoteko C in graditi DLL, sem prva dva koraka, vendar pa je potrebno 3. programa Microsft Visual C + + 6.0, da imam, tako da še, da bi iz korake storiti, tako da grem stran, sem v tem času.

Vendar lahko vam ustvariti pravila za svoje knjižnice in prost dostop, vendar upam, da vam je všeč ta primer za razumevanje tega celo vprašanje DLL. Mislim, da so vaje, kako narediti DLL z Dev, zato ne pretvarjamo, da je to ena, tudi zato, ker mi ni prebral še eno in tako mislim, da imam težave prevajate svoje lastne kode. C glave. H. Def. Lahko priporoči kateri koli drug komentar na povezavo za pomoč pri ustvarjanju DLL v C / C + + lahko iz katerega koli programa, nato pa nekaj, če pojasnjuje LabView veliko bolje.

  • 1. korak: Ali nameščen Dev-C + + in ustvarjanje DLL

Primer, ki sem dal je različica 4.9.9.2, lahko vidite, kaj je na voljo tukaj .

Če želite ustvariti dll-> name-> Project

Izberite DLL, izberite jezik C in dal ime projekta tako HelloDll. Morate zapustiti projekt dve datoteki samodejno dllmain.cy dll.h. Če se izbere za C + + od teh dveh arichivos vendar brez zgledu Hello World.

. Arhiv C (sem ne nadomesti ali prva vrstica):

/ * Zamenjajte "dll.h" z imenom vaše glave * /
# Vključujejo "dll.h"
# Vključi <windows.h>
# Vključi stdio.h
Stdlib.h

DLLImport nična vikam ()
{
MessageBox (0, "Hello World iz DLL \ N!", "Hi", MB_ICONINFORMATION);
}

APIENTRY bool DllMain (HINSTANCE hInst / * Knjižnica primer ročaj. * /,
DWORD razlog / * Razlog je ta funkcija Ker se imenuje. * /
Pridržane LPVOID / * ne uporablja. * /)
{
stikalo (razlog)
{
primeru DLL_PROCESS_ATTACH:
break;

DLL_PROCESS_DETACH primer:
break;

DLL_THREAD_ATTACH primer:
break;

primeru DLL_THREAD_DETACH:
break;
}

/ * Vrne TRUE za uspeh, pa FALSE * /
vrne TRUE;
}

. H:

# Ifndef _DLL_H_
# Določite _DLL_H_

# Če BUILDING_DLL
# Določite DLLImport __ declspec (dllexport)
# Else / * ni BUILDING_DLL * /
# Določite DLLImport __ declspec (dllimport)
# Endif / * ni BUILDING_DLL * /

DLLImport nična vikam (void);

# Endif / * _DLL_H_ * /

To je to, sedaj vam ni treba napisati ničesar, pojdite na vožnjo-> dopolni oziroma CTRL + F9 ali cudraditos barvne ikone zgoraj levo in smo ustvarili DLL. Mogoče je zahteva, da vodi projekt. Dev in posledičnih datotek. C. H, DLL bo shranjena v isti mapi, ali če pokažete svoje ime in projektno-> projekt Možnosti-> Gradbeništvo jih lahko spremenite.

  • 2. korak: Ustvarjanje VI

Vzameš novo VI, pojdite na shemi, in postavi v knjižnici klicev Funkcija vozlišča vi, je mogoče najti v conectivity-> knjižnicami in izvedljive. In to, da je tako preprosto, vendar dobro za RUN better'll delovni del strukture v obraz, če Res je, da gumb nadzorom boolean, in vse v zanke Loop, ki se lahko nadzoruje tudi ustavite z isto tipko.

  • Korak 3: Call knjižnica Funkcija Node Izpolnite

Daje se dvakrat na šesto ali drugem gumb niz:

- V knjižnici Ime ali poti je določena pot do DLL

- Glede na vikam in bo to napisati (vendar gre slabo, mislim)

- Poziv konvencije v C smo

- Parameter nična, ki smo si jih napisal (tj. ne vrne ničesar)

- Vrsta neveljavne.

In to je to, spodaj je oblika void funkcija vikam (void); Če ne bi bilo odvisna od tipa VI vrača ničesar, bi spremenila način, kako se lahko poveže vhodni podatki ali izidi.

To je več kot vodeno in sreče.

Blogger Post Facebook WordPress Email Share
PDF    Pošljite članek v formatu PDF   

17 Komentarji za "LabView 3.1: ustvariti DLL v C z Dev-C + + in LabView klic"

  1. yelinna pravi:

    Pozdravljeni
    Jaz jim DLL z TurboExploer http://www.turboexplorer.com/~~pobj , ki je brezplačna, vendar tehta 200 MB. To lahko storite tudi z brezplačnimi ponudbami prevajalnika Borland (5.5).

    Lep pozdrav!

  2. Cristina pravi:

    najlepša hvala! Sem bil zelo koristen.

  3. Cesar Jimenez pravi:

    Zdravo, da tak!

    Želim povezati Canon moč strel G9 cmaara in dobili sliko skozi okno LabVIEW, očitno rabim nekaj dll datotek, za to vrsto intefaces .... lahko pomagate, ali daj mi nekaj nasvetov.

    Cesar Jimenez Calvillo.

  4. weeberp pravi:

    Hi Cezar.
    Prva stvar, vidim, je bolj enostavno pa fotoaparat je videti kot webcam programsko opremo ali vtič je mogoče videti v "Moj računalnik", kot webcam, Če je tako prepričan, lahko uporabite poštno številko? labview Vision 0,5: oznaka preprost USB kamera
    in indeks označuje ime fotoaparata biti izbran.
    Če ne, nobene programske opreme ali ne deluje kabel USB (kar je vsekakor povezuje tudi) želi generični gonilnik, ki bo služila kot spletno kamero, ali programu za uvoz fotografij neposredno iz fotoaparata ... ne vem, o zadevi je, da če vidite video preko računalnika z njim gotovo je, da je navedena na seznamu.
    Ne verjamem, da je lažje najti (še manj pa to), je dll, ki vsebuje funkcijo, ki pokliče slike zaporedje, ki deluje kot video. Če se vam zdi, kot veste, prek vozlišča funkcijo klicev (da ugotovite, kakšne vrste podatkov, morate poklicati funkcijo, ali pa nazaj, če je matrika, če niz kazalec, itd ..., da se opredeli klic).

  5. Uyuni Kenjin Joe pravi:

    Lepo novo, tako kot z uporabo knjižnice z istim dev s sodelovanjem lengauje c + +

  6. weeberp pravi:

    No, kot vsako knjižnico, dal # include knjižnico (med trikotnikom in kotacije, ki temelji na mesto datoteke, če je privzeta mapa ali ne) in je že, pokličite funkcijo v programu.
    Poleg tega sem ugotovil, da dajanje le. C pred funkcijo želimo izvoziti, ko definiramo funkcije na prvi, ključna beseda __ declspec (dllexport) je že javno funkcijo, potem imajo gumb za ustvarjanje dll programa smo utlizando za pripravo. Ta ključna beseda se lahko nekoliko razlikujejo Mislim, da iz enega programa v drugega, ampak Google je hitro.

  7. Ray pravi:

    Hej hej lahko storim programski graditelja in jo uporabite kot ste opisali v LabVIEW 6.1? Moram narediti program v LabVIEW, ampak se mi zdi bolj zapletena sem se uporabljajo za vedno uporabljajo jezik C

    Bi me zelo cenijo v poštev!
    Hvala vnaprej!

  8. weeberp pravi:

    Uporabite lahko kateri koli program, da bi DLL, če veste, in kaj lahko storite. Dokazati, ali sem dal javne funkcije, kako sem uporabite malo programa Dependecy Walker.
    In če lahko v LabVIEW 6.1 stori enako, da pokličete dll, mislim, da spremeni način, kako narediti, oziroma kraj, saj različico 7, pa imate Call funkcije Node Libray podobni. Prav tako se izogiba koda vmesnik Node (CIN), ki služi tudi za izvajanje kode, vendar je dejstvo, da kljub temu veliko berem nisem enterder kako deluje.
    Prav tako ne pozabite, da lahko s C kodo ali jezik na enak način omogoča strukturiran vozlišča strukture, vendar ne bi dal v tem vključuje funkcije ali klice ... In s MathScrpt Node jeziku Matlab, toda za to mislim, da moramo LabView, ki vključuje popolno ...
    tudi tukaj je ročno v angleščini poklicati zunanjo kodo v LabVIEW I 6.0 in 6.1, ki jih uporabljamo vozlišče, kot si že rekel, ampak v več, prav tako ustvarja dll od začetka ...
    http://www.ni.com/pdf/manuals/370109a.pdf

  9. martin pravi:

    Jaz vam lahko razloži malo bolje, saj lahko grem iz C + + jezik za LabVIEW?

  10. weeberp pravi:

    Mimo mimo ne prenese, lahko dodate kodo, je dodal.
    - Če pride do funkcije, ali skoki ali karkoli nenavadnega strukture le, če .. sicer .. za ... potem Formula vozlišče.
    - Če pride do funkcije in bolj dodelan program, ustvarja DLL in jo pokličite s klicev Funkcija Node Libray (so pomagalke Orodje »Import» Skupna knjižnica (DLL) pride prav.).
    Šifra vmesnik Node ne vem, kako se to uporablja, tukaj je primer: Primer CIN z LabVIEW in MS Visual C + + 5.0 .
    Zunanji Koda za LabVIEW - CIN / DLL - Začetna točka
    -. MathScript Node Matlab code Moja pisarna, morate imeti MATLAB.
    - Želite več C? Mislim, da pasate LabWindows CVI.

  11. Federico pravi:

    hi exite želel vedeti, če je možnost obratno, na katero sem se je, da če lahko dobim tisto, kar počnem v LabVIEW do C. moje vprašanje se je, da to, kar počnem v LabVIEW lahko pa ga uporabite v mikro

  12. weeberp pravi:

    Zdaj je vprašanje, ki sem jih jaz naredil večkrat, a tisto, kar sem sedaj zbranih po vrsti FPGA je, da mislim, da ne.
    Če želite načrtovati FPGA, če je vse LabView programa in glede na to, da pripravijo dokumentacijo za pretvorbo VHDL ali tista, ki sprejema z FPGA (tako enostavno, kot za NXT), vendar velja samo za 4 ali 5 modelov in FPGA Modul stane veliko denarja. Mislim, da za mikro različico ¿ARM? Ne spomnim se bo naredil enako.
    Toliko, kot lahko dobite boolean določeno skupino, ki ... v C. se pravi, če se povežete s skupino (na primer, ki ima več stvari in zapletenih) v knjižnico Call Node funkcije (najprej moraš iti v in dal v parametrih, kot tipa Adpat tipa), ki jih dajejo na drugo tipko, da si ogledate možnosti, ki jih imajo VIS in ste zadeli Ustvari. C datoteke. No, jaz sem povedal, dobijo samo začetek z glavo datoteke C, da izpolnite vaše celotno kodo..
    Ker je vedno možnost, LabView CVI, vendar je to, kako se program v C (ne vizualno) in kliče LabVIEW od knjižnic do vmesnikov gumbov subVI.

  13. Fabian pravi:

    Pozdravljeni,
    Jaz sem newbie v DLL vprašanja, ampak jaz se sprašujem, če misliš Matlab datotek Mex, da sem razumel so podobne DLL, lahko se jih uporabi tudi v LabVIEW. To pomeni, da imam koda C q je kompleksna in je bil uporabljen v Matlab kot datoteke Mex, in sem ga uporabljajo v LabVIEW. Ne, če je mogoče, ali če bi moral bolje pretvarjati, da kodo na DLL C z metodami, ki ste jih predlagal.

  14. weeberp pravi:

    Za do sedaj še nikoli ni prebral kaj o dll datotek, kot Matlab MEX klical. vendar je videti na ni.com s ključnimi besedami "Matlab Mex" zapustil me naslednje:

    * VI ​​MEX uporabo NI LabVIEW Math Interface Toolkit klicne LabVIEW Vis od The MathWorks Inc MATLAB ® programska oprema okolje

    * Tukaj mislim, da naredi povezavo med Simulink LabVIEW in NI LabVIEW Simulation Interface Toolkit

    Za uporabo mex v LabView ni zapustil ničesar tako hitro in nikoli nisem šel na branje za povezavo s knjižnicami LabVIEW, pa seveda nikoli nisem šla drugače, ali od običajnih datotek AutoCAD ... Torej, če lahko zbere C vsak program in ne Dll je rešitev.
    *

  15. Fernando_H pravi:

    Dobro obdobje po tem, da uspe ustvariti dll, ki se uveljavlja v LabVIEW ni pomembno, kateri prevajalnik uporabljate, se odpre v svet možnosti, ampak tudi videli svet težave, še posebej, če tisto, kar delamo, je več kot "Hello World". Sem trdo delal za uporabo dll je sestavljen iz umetnih mreženje neurunales knjižnic za uporabo v LabVIEW.
    Prvi problem, podatkovni tipi, ko morate knjižnice DLL prenese kot parametri kompleksnih podatkovnih tipov kot velikih struktur c + +, je naloga malce boleče ravnati malo s temi ovirami, ustvarite povezavo funkcije v c + +, ki zmorem podatke strukture c + + in LabVIEW čim bolj užitna.
    Druga težava, upravljanje s pomnilnikom, včasih, še posebej, ko začnete programiranje, ste nagnjeni k razmišljanju ", če ste pripravljeni, saj je to dobro," toda če ustvarite zanko v LabVIEW, kjer se sklicuje na funkcijo tisočkrat na sekundo , se nahaja v DLL in če da funkcija ne pomeni, da pravilno uporabo spomina lahko preprosto vrnete sistem nestabilen. To je tako, potem ko je vesel, da vidite, kako je delal RNA popoln, sem se v nekaj sekundah decepcioncuando videl vse, kar je in se ustavil, kot je računalnik postal počasen. Preveril sem vse kodo C + +, destruktorji, konstruktorji, tako imenovani novi in ​​brisanje, vendar je bilo ugotovljeno nobenih težav.

  16. weeberp pravi:

    Strinjam se z vami, je resnica, saj ne dobijo podatke v DLL v LabView, če ste porabili z velikostjo, z namenom za nekaj drugega ... nenadoma naredi razpoko labview in zapre nenadoma. In počasi jasno, vsaj v 8.6.1.

Pustite Odgovori

(obvezno)

(obvezno)

CAPTCHA Image
Osveži Image
*