LabVIEW 3.1: stvoriti DLL u C s Dev-C + + i LabView nazovite

Pozdrav, ja ću napisati jednostavan primjer jednostavan način za stvaranje otkrio DLL (Dynamic Link Libraries) u C, a zatim moći nazvati u LabVIEW-u, primjer je pop u "Hello World". Više Problem je za mene da biste stvorili DLL (jer je jedina stvar s obzirom sastavlja se izravno kod strojeva knjižnica fiksna), nazvati C funkciju u LabVIEW-u, kao što je to učinio s lakoćom poziva funkcija knjižnice Node VI.

Na nacionalnih instrumenata tri stranice kako biste uputili poziv, stvoriti datoteku C i izgraditi DLL, napravio sam prva dva koraka, a treći je potrebno program Microsft Visual C + + 6,0 da imam, pa još da izvedeš korake da to učine, ja napustiti stranicu ovdje u međuvremenu.

Ipak, mogu vam stvoriti pravila za vlastite knjižnice i pokrenuti, ali nadam se vam se sviđa ovaj primjer razumjeti ovu cijelu pitanje DLL. Mislim da postoje tutoriali o tome kako napraviti DLL s Dev, tako da ne se pretvarati da je ovo jedan, i zato ja ne pročita ga još uvijek bilo i tako mislim da imaju problema kompajliranju svoje vlastite kodove. C zaglavlja. H. Def. Možete li mi preporučiti neki drugi komentar na link kako bi se stvorili DLL u C / C + + lako iz bilo kojeg programa, a zatim neke, ako LabVIEW objašnjava puno bolje.

  • Korak 1: Jesu li instaliran Dev-C + + i stvoriti DLL

Primjer koji sam stavio je verzija 4.9.9.2, možete vidjeti ono što je dostupno ovdje .

Da biste stvorili dll file-> ime-> Project

Odaberite DLL, odaberite jezik C i staviti projekta naziv kao HelloDll. Morate izaći iz projekta dvije datoteke automatski dllmain.cy dll.h. Ako je odabrano za C + + iz ovih dviju arichivos ali bez primjeru Hello World.

. Arhiva C (nisam zamijeniti ili prva linija):

/ * Zamijeni "dll.h" s imenom svog zaglavlja * /
# Include "dll.h"
# Include <windows.h>
# Include stdio.h
Stdlib.h

DLLImport HelloWorld void ()
{
MessageBox (0, "Hello World iz DLL \ n!", "Hi", MB_ICONINFORMATION);
}

APIENTRY BOOL DllMain (HINSTANCE hInst / * Knjižnica instanca ručka. * /,
DWORD razloga / * Razlog je ova funkcija se zove. * /
LPVOID pridržana / * Ne koristi. * /)
{
sklopka (razlog)
{
slučaj DLL_PROCESS_ATTACH:
slomiti;

DLL_PROCESS_DETACH slučaj:
slomiti;

DLL_THREAD_ATTACH slučaj:
slomiti;

slučaj DLL_THREAD_DETACH:
slomiti;
}

/ * Vraća TRUE na uspjeh, FALSE na neuspjeh * /
vratiti TRUE;
}

. H:

# Ifndef _DLL_H_
# Define _DLL_H_

# Ako BUILDING_DLL
# Define DLLImport declspec __ (dllexport)
# Else / * Ne BUILDING_DLL * /
# Define DLLImport declspec __ (dllimport)
# Endif / * Ne BUILDING_DLL * /

DLLImport HelloWorld void (void);

# Endif / * _DLL_H_ * /

To je to, sada ne trebate ništa napisati, samo idite na trčanje-> kompajlirati ili CTRL + F9 ili ikona u boji cudraditos gore lijevo, a mi generirana DLL. Možda će vas pitati da bi taj projekt. Dev i generiranih slika. C. H, DLL će biti spremljena u istu mapu ili ako pokazuju svoje ime i projekt-> projekt opcije-> građevinski možete ih promijeniti.

  • Korak 2: Napravite VI

Vi se novi VI, idite na blok dijagramu, i stavio u Call knjižnice funkcija Node vi, mogu se naći u conectivity-> Knjižnice i izvršne. I to, to je to lako, ali dobro za RUN rada better'll staviti u strukturi u lice ako je istina, upravljan gumb boolean, a sve u roku od loop petlja koja se može kontrolirati i prestati s istu tipku.

  • Korak 3: Call Knjižnica Funkcija Node Ispunite

To je dao dva puta šesti ili drugi gumb skup:

- U knjižnici ime ili put postavlja put do DLL

- Ovisno o HelloWorld i ona će ga pisati (ali to ide teško mislim)

- Pozivanje konvencije u C mi

- Parametar praznina oko koje smo se pisali (tj. ne vraća ništa)

- Tip nevažeće.

I to je to, u nastavku je oblik HelloWorld funkcije void (void); Da nije bilo u funkciji tipa VI vraća se ništa neće promijeniti način na koji možete spojiti ulazi ili izlazi.

Prošlo je više-run i sreća.

Blogger post Facebook WordPress E-mail Udio
PDF Download    Pošalji članak u PDF formatu   

17 Komentari na "LabView 3.1: stvoriti DLL u C s Dev-C + + i LabVIEW poziv"

  1. yelinna kaže:

    Bok
    Ja im DLLs s TurboExploer http://www.turboexplorer.com/~~pobj što je besplatno, ali teži 200 megs. Također možete napraviti sa free prevodioca Borland ponude (5,5).

    Pozdrav!

  2. Cristina kaže:

    puno ti hvala! Ja sam bio stvarno koristan.

  3. Cesar Jimenez kaže:

    Pozdrav da je takav!

    Želim spojiti Canon power shot G9 cmaara i dobiti sliku kroz prozor LabVIEW, očito trebam neke dll datoteke za ovu vrstu intefaces .... Možete li mi pomoći ili mi dati neke savjete.

    Cesar Jimenez Calvillo.

  4. weeberp kaže:

    Hi Cezar.
    Prva stvar koju vidim je lakše ne fotoaparat je da ga vide kao webcam softver ili čep može se vidjeti u "My Computer", kao webcam, ako je tako da možete koristiti poštanski broj? LabVIEW 0.5 Vizija: kod jednostavan USB kameru
    i indeks ukazuje na ime kamere biti odabran.
    Ako ne, ne program ili ne rade USB kabel (koji svakako povezuje i) traži generički upravljački program koji će služiti kao web kameru, ili programa za uvoz fotografija izravno s fotoaparata ... ne znam, slučaj je da ako vidite videa putem računala s njim sigurno da je naveden u popisu.
    Ne mislim da je lakše pronaći (a još manje učiniti) DLL koji sadrži funkciju koja poziva slike slijed koja djeluje kao video. Ako ste pronašli kao što znate kroz čvor funkcija poziva (saznate kakvu podataka morate pozvati funkciju ili nazad, ako polje, ako je niz pokazivača, itd ... definirati poziv).

  5. Uyuni Kenjin Joe kaže:

    Lijep novi, poput korištenja knjižnicu s istim dev s ko lengauje c + +

  6. weeberp kaže:

    Pa, kao što je bilo knjižnice, staviti # include knjižnice (između trokuta i kotacije temelji se na mjesto datoteke, ako je zadana mapa ili ne) i već nazvali funkciju u programu.
    Također sam pronašao da stavite samo. C ispred funkcije želimo izvoz, kada smo definirali funkciju na početku, declspec ključne riječi __ (dllexport) je već javnu funkciju, a zatim s obzirom na dugme da bi kreirali dll programa mi smo utlizando za kompilaciju. Ova ključna riječ možda biti malo drugačiji mislim da iz jednog programa u drugi, ali Google je brzo.

  7. Ray kaže:

    Hej hej ja mogu učiniti graditelj programa i koristiti ga kao što ste opisali u LabVIEW-u 6.1? Moram napraviti program u LabVIEW ali mislim da je kompliciraniji sam se da uvijek koristite C jezik

    Bila bi jako me cijene ne dolazi u obzir!
    Hvala unaprijed!

  8. weeberp kaže:

    Možete koristiti bilo koji program da bi DLL, ako znate i što možete učiniti. Da bi dokazali da li sam stavio javne funkcije kako sam koristiti ono malo programa Dependecy Walker.
    A ako u LabVIEW 6.1 može učiniti isto pozvati dll, mislim da se mijenja način na koji radite i mjesto od verzije 7, ali imate poziva funkcija čvora Libray podjednako. Također izbjegava Node Code Interface (CIN), koji također služi za izvršavanje koda, ali je činjenica da koliko god sam pročitao nisam enterder kako se to radi.
    Također zapamtite da možete koristiti C kod ili jezik na isti način čini strukturirani čvor strukturu, ali nije mogao staviti u funkciju ovdje uključuje ili pozivi ... A s MathScrpt Node MATLAB jeziku, ali za to mislim da trebamo LabVIEW koji uključuje puni ...
    i ovdje je priručnik na engleskom jeziku na poziv kod za vanjsku liniju u LabVIEW-I 6.0 i 6.1, koristimo čvor kao što si rekao prije, ali u više, također stvara dll od početka ...
    http://www.ni.com/pdf/manuals/370109a.pdf

  9. Martin kaže:

    Mogao bih vam objasniti kako sam malo bolje može ići od C + + jeziku LabVIEW-u?

  10. weeberp kaže:

    Pass proći ne prođe, možete dodati kôd dodaje.
    - Ako postoje funkcije, ili skokove, ili neobičnim strukturama samo ako .. drugo .. za ... zatim Formula Node.
    - Ako postoje funkcije i više razraditi Program stvara DLL i nazovite ga s funkcije pozivanja Node (Libray su pomoćne Alati »Uvoz» Zajednička Library (DLL) dolazi u ruci.).
    Kod čvora sučelja ne znam kako se koristi, evo primjera: Primjer CIN s LabVIEW i MS Visual C + + 5.0 .
    Vanjski Kod za LabVIEW - CIN / DLL - Početna točka
    -. MathScript MATLAB kod čvora Moj ured, morate imati Matlab.
    - Želite li više C? Mislim da se pasate LabWindows HVI.

  11. Federico kaže:

    hi exite ištanje to znati ako mogućnost obrnuto, na što sam je da ako ja mogu dobiti ono što radim u LabVIEW-u na C. Moje pitanje je da ono što radim u LabVIEW mogu li ga koristiti u mikro

  12. weeberp kaže:

    Sada, pitanje koje bih sam učinio nekoliko puta, ali ono što sam okupio do sada, nakon liniji FPGA je da mislim da ne.
    Za planiranje FPGA ako je sve LabVIEW program i dati izraditi datoteku pretvoriti u VHDL ili onaj koji prihvaća FPGA (tako lako kao za NXT), ali vrijedi samo za 4 ili 5 modela i FPGA modul košta puno novaca. Mislim da za mikro verzija ARM ¿? Ne sjećam se da će učiniti isto.
    Koliko god možete dobiti boolean definiranu skupinu ... U C. odnosno ako spojite skupinu (na primjer ima više stvari i komplicirano) na Function Call knjižnice Node (prvo morate otići i staviti u parametrima u obliku Adpat tipa) koje daju u drugu tipku da biste pregledali opcije koje imaju Vis i pritisnete Stvori. C datoteka. Pa ja sam vam reći samo dobiti početi s datoteke zaglavlja. C ispuniti cijeli kod.
    Kao što je uvijek opcija LabVIEW CVI, ali to je kako programirati u C (nije vizualna) i zove LabView od knjižnica sučelja gumbe subVI.

  13. Fabijan kaže:

    Pozdrav,
    Ja sam newbie u DLL pitanja, ali ja čuditi ako u smislu MATLAB Mex datoteke, ja sam shvatio slični su DLL, mogu ih koristiti u LabVIEW. To je, imam broj C q je složena i koristi se u Matlab kao Mex datoteke, a ja sam ga koristiti u LabVIEW. Ne ako je to moguće ili ako sam bolje trebao pretvoriti taj kod u C DLL s metodama koje ste predložili.

  14. weeberp kaže:

    Za do sada nikada nije pročitao ništa o DLL datotekama, kao Matlab MEX zove. ali gledajući NI.com s ključnim riječima "MATLAB" Mex je napustio me sljedeće:

    * VI ​​Mex pomoću NI LabVIEW Math Interface Toolkit pozivne LabVIEW Visu od The MathWorks Inc MATLAB ® softver za okoliš

    * Ovdje mislim da čini vezu između Simulinku i LabVIEW NI LabVIEW simulacijskog Interface Toolkit

    Da biste koristili MEX u LabVIEW-u nije ostavio ništa tako brzo i nikad nisam otišao na čitanje povezati s LabVIEW knjižnicama, ali, naravno, nikad nisam otišao na neki drugi način, ili od normalnih AutoCAD datoteka ... Dakle, ako možete sastaviti C bilo koji program i učiniti dll je rješenje.
    *

  15. Fernando_H kaže:

    Dobro razdoblje nakon toga da se uspije stvoriti dll treba pozivati ​​u LabVIEW ne smeta što compiler koristite, to otvara svijet mogućnosti, ali i vidjeti svijet problema, pogotovo kada ono što mi radimo je više od "Hello World". Ja sam radila teško koristiti dll je sastavljen od umjetnih neurunales umrežavanja knjižnica za uporabu u LabVIEW.
    Prvi problem, tipovi podataka, kada se trebate knjižnice dll prošao kao parametri složenih tipova podataka kao velikim konstrukcijama c + +, zadatak je pomalo nesretan da se bave malo s tim prepreka, stvaranje vezi funkcije u c + + koji može nositi podatke strukture c + + i LabVIEW učiniti ih jestivo.
    Drugi problem, upravljanje memorijom, ponekad, pogotovo kada pokrenete programiranje, imaju tendenciju da misle "ako ste sastavio je jer je to dobro", ali ako ste stvorili petlju u LabVIEW gdje funkcija se poziva na tisuće puta u sekundi , smješten u dll-a ako tu funkciju ne bi pravilno korištenje memorije možete jednostavno vratiti sustav nestabilan. Tako je nakon što je drago vidjeti kako RNA radila savršeno, pao sam u nekoliko sekundi decepcioncuando vidio sve i zaustavlja što je računalo postalo sporo. Provjerio sam sve kod C + +, destructors, graditelja, takozvani novi i brisanje, ali nije pronašao nikakve probleme.

  16. weeberp kaže:

    Slažem se s tobom, istina jer ne dobiva podatke u dll-u LabVIEW-u, ako ćete potrošiti s veličinom, s ciljem za nešto drugo ... odjednom čini LabVIEW crack i završava naglo. I polako jasno, barem u 8.6.1.

Dopust jedan Odgovor

(required)

(required)

CAPTCHA Image
Osvježi sliku
*