LabVIEW 3.1: sukurti DLL C su Dev-C + + ir LabVIEW skambinti
Sveiki, aš einu rašyti paprastas būdas sukurti atrado DLL (Dynamic Link bibliotekos) C ir tada galės kreiptis į LabVIEW paprastą pavyzdį, pavyzdys yra "Hello World" Pop. Daugiau Bėda ta, kad man sukurti DLL (nes vienintelis dalykas, sudaryta tiesiogiai mašinoms kodo bibliotekų fiksuotus), skambinti C funkciją į LabVIEW, kaip tai padaryti lengvai su Call bibliotekos funkcija mazgo VI.
Dėl nacionalinės priemonės yra trys puslapiai, kaip užmegzti ryšį, sukurkite failą C ir sukurti DLL, aš padariau pirmus du veiksmus, tačiau trečiasis reikia programą Microsft Visual C + +, 6,0, todėl, kad aš dar, kad imtis veiksmų tai padaryti, aš čia tuo tarpu palikti puslapį .
Tačiau galiu leidžia jums sukurti savo pačių bibliotekų taisykles ir paleisti, bet aš tikiuosi, kad jums patinka šis pavyzdys suprasti visą šią problemą, DLL. Manau, yra samouczków apie tai, kaip padaryti, kad DLL su Dev, todėl nereikia apsimesti, kad tai yra viena, taip pat, nes aš neturiu jį perskaityti dar bet ir todėl manau, aš turiu problemų skompilowaniem mano savus kodus. C antraštes H. Def. Ar jums rekomenduos bet kokį kitą komentarą nuorodą padėti sukurti DLL C / C + +, lengvai iš bet kurios programos, o tada kai, jei LabView paaiškina daug geriau.
- 1 žingsnis: Ar įdiegta Dev-C + + ir sukurti DLL
Pavyzdys, kad aš įdėti 4.9.9.2 versija, jūs galite pamatyti, kas yra rasti čia .
Norėdami sukurti dll failas-> name-> Project
Pasirinkite DLL, pasirinkite kalbą, C ir įdėti projekto pavadinimas tokį HelloDll. Jūs turi išeiti projektą du failai automatiškai dllmain.cy, dll.h. Jei pasirinkta C + +, iš šių dviejų arichivos, bet be "Hello World pavyzdžiu.
Archyvas C (aš ne pakeisti arba pirmoji eilutė):
/ * Pakeiskite "dll.h", su savo antraštės pavadinimą * /
# Include "dll.h"
# Include <windows.h>
# Include stdio.h
Stdlib.hDLLImport negalioja HelloWorld ()
{
MessageBox (0, "Hello World iš DLL \ n!", "Labas", MB_ICONINFORMATION);
}APIENTRY BOOL DllMain (HINSTANCE hInst / * biblioteka instancija rankena * /
DWORD priežastis / * Priežastis ši funkcija yra vadinama. * /
Saugomos LPVOID / * Nenaudojamas. * /)
{
jungiklis (priežastis)
{
atveju DLL_PROCESS_ATTACH:
break;DLL_PROCESS_DETACH bylą:
break;DLL_THREAD_ATTACH bylą:
break;atveju DLL_THREAD_DETACH:
break;
}/ * Grąžina true sėkmės,, FALSE nesėkmės * /
return TRUE;
}
. H:
# Ifndef _DLL_H_
# Define _DLL_H_# Jei BUILDING_DLL
# Nustatykite DLLImport __ declspec (dllexport)
# Else / * Nėra BUILDING_DLL * /
# Nustatykite DLLImport __ declspec (dllimport)
# Endif / * Nėra BUILDING_DLL * /DLLImport negalioja HelloWorld (void);
# Endif / * _DLL_H_ * /
Štai ir viskas, dabar jums nereikės nieko rašyti, tiesiog eikite į run-> kompiliavimo arba CTRL + F9 arba Piktogramos spalva cudraditos, viršuje kairėje, ir mes sukurtas DLL. Gal jis paprašys išsaugoti projektą. Vystymas ir sukurtus failus. C. H DLL failas bus išsaugotas tame pačiame aplanke, arba jei nurodyti savo vardą ir projekto-> projektas Options-> Statyba galite juos keisti.
- 2 žingsnis: sukurkite VI
Jūs naują VI, eikite į diagramą, ir pateikti Call bibliotekos funkcija mazgo vi, galima rasti conectivity> Bibliotekos ir vykdomąsias programas. Ir tai, tai taip paprasta, bet gera veido struktūros pateiktą Vykdyti darbo better'll, jei tiesa, mygtukas-kontroliuojamo boolean, ir visi per kilpos Loop, kad gali būti kontroliuojami, taip pat nutraukti su tą patį mygtuką.
- Žingsnis 3: Call bibliotekos funkcija Mazgas Užpildykite
Jis vartojamas du kartus per šeštąjį arba mygtuką antrą rinkinį:
- Bibliotekos pavadinimas arba kelias kelią į DLL
- Priklausomai nuo HelloWorld ir rašyti (bet jis važiuoja blogai Manau,)
- Calling konvencijos C mes
- Parametras negalioja, kad mes parašėme patys (ty ne grįžti nieko)
- Tipas negalioja.
Ir tai, žemiau yra funkcija void HelloWorld (tuščia) forma; Jei ne VI tipo funkcija grįžti nieko pakeisti būdą, galite prijungti įvesties duomenis ar rezultatus.
Tai vėlinimas po liepsnos užgesimo ir sėkmė.



















































Sveiki
Darau jiems DLL TurboExploer, http://www.turboexplorer.com/~~pobj, kuri yra nemokama, bet sveria 200 Megs. Taip pat galite padaryti nemokamai kompiliatorius Borland siūlo (5.5).
Sveiki!
labai ačiū! Man buvo tikrai naudinga.
Sveiki, kad toks!
Noriu prisijungti Canon Power Shot G9 cmaara ir gauti vaizdą per langą LabVIEW, matyt, man reikia kai kurių dll failus šio intefaces tipo .... Ar galite padėti ar suteikti man keletą patarimų.
Cesar Jimenez Calvillo.
Labas Cezaris.
Pirmas dalykas, aš matau, yra lengviau, ar jūsų kamera turėjo jį pamatyti, kaip "My Computer" webcam software ar kištukas gali būti vertinamas kaip kamera, Jei taip tikrai galite naudoti pašto kodą? LabVIEW Vision 0,5: kodas paprastas USB-kameros
indeksas rodo pasirinktą fotoaparato pavadinimą.
Jei ne, jokios programinės įrangos ar neveikia USB kabelį, kuris tikrai jungia gerai) siekiama bendrais bruožais tvarkyklę, kuri tarnautų kaip kamera, ar programos importuoti nuotraukas tiesiai iš fotoaparato ... Aš nežinau, bylą kad jei matote, vaizdo per PC su juo tam tikras, kad yra įtraukta į sąrašą.
Nemanau, kad būtų lengviau rasti (daug mažiau daryti) dll, kuriame yra funkcija, kuri vadina vaizdų seka, kuri veikia kaip vaizdo. Jei rasite, kaip žinote, per skambučių funkcija mazgas (išsiaiškinti, kokius duomenis turite skambinti funkciją, ar jums atgal, jei masyvas, jei masyvo rodyklė, tt nustatyti ryšį).
Nicos naujas, su tuo pačiu dev su bendro lengauje, pavyzdžiui, naudojant biblioteką c + +
Na, kaip ir bet kuris bibliotekos, įdėti # include biblioteką (tarp trikampio ir citatos failo vietą, jei numatytasis aplankas arba ne) ir jau, kreipkitės į funkciją programoje.
Be to, aš rasiu, kad pradėti tik prieš funkcija, mes norime eksportuoti C, kai mes apibrėžti funkcijas Pirma,, raktažodžių __ declspec (dllexport) yra jau visuomenės funkcija, tada mygtuką, kad sukurtumėte dll programą mes kompiliavimo utlizando. Šis žodis gali būti šiek tiek kitoks, aš manau, iš vienos programos į kitą, bet "Google" yra greitas.
Hey hey Galiu padaryti programos statybininkas ir naudoti jį kaip jūs apibūdintumėte LabVIEW 6.1? Turiu padaryti programą LabVIEW, bet manau, jis sudėtingesnis, aš visada naudoti C kalbos
Ar labai dėkingi man klausimą!
Ačiū iš anksto!
Galite naudoti bet kokią programą, kad DLL, jei žinote, ką jūs galite padaryti. Norėdami įrodyti, ar aš viešąsias funkcijas, kaip aš naudoju mažai programą Dependecy Walker.
Ir jei LabVIEW 6,1 gali padaryti pats skambinti DLL, Manau, kad jis keičia taip, kaip jūs darote, ir nuo 7 versijai vietą, bet jūs turite skambinimo funkcija Mazgas Libray "panašūs. Taip pat išvengiama Kodas sąsajos mazgas (CIN), kuris taip pat padeda vykdyti kodą, bet faktas, kad vis dėlto daug skaitau aš ne enterder, kaip ji veikia.
Taip pat nepamirškite, kad galite naudoti C kodą ar kalbą, tuo pačiu būdu, daro struktūra mazgo struktūrą, tačiau negalėjo pateikti čia apima arba funkcija skambučiai ... Ir su MathScrpt Mazgas Matlab kalba, bet aš manau, kad mes turime LabVIEW kad pilnas ...
gerai čia yra anglų kalba vadovas skambinti išorinį kodą, I LabVIEW 6.0 ir 6.1, mes naudojame mazgą, kaip sakėte anksčiau, tačiau ilgiau, taip pat kurti nuo pradžios dll ...
http://www.ni.com/pdf/manuals/370109a.pdf
Galėčiau jums paaiškinti šiek tiek geriau, kaip aš galiu eiti nuo C + + kalba LabVIEW?
Zal ne perduoti, galite pridėti kodą.
- Jeigu yra funkcijos, šuoliai, arba tik tada, jei kažką neįprasto, statiniai .. dar .. ... Tada Formulės mazgo.
- Jeigu yra funkcijos ir išsamesnis programa sukuria DLL ir jį vadiname Funkcija Skambinti. Mazgas Libray pagalbininkas Įrankiai »Importas» Skirstoma biblioteka (DLL) praverčia.)
Kodas interface nežinau, kaip ji naudojama, štai pavyzdys: Pavyzdys CIN su LabVIEW ir MS Visual C + + 5.0 .
Išorinis Kodas LabVIEW - CIN / DLL - pradžia
- Mathscript Mazgas MATLAB kodas Mano biuras, jums reikia turėti MATLAB.
- Norite daugiau C? Manau, pasate LabWindows CVI.
Hi exite norėjo žinoti, jei kitu būdu galimybė aplink, kurį aš, kad jei aš galiu gauti, ką darau, LabVIEW C mano klausimas yra, kad tai, ką darau, LabVIEW galiu daryti su mikro
Dabar klausimas, aš aš padariau keletą kartų, bet ką aš surinko iki šiol, po FPGA linijos yra tai, kad Manau, kad ne.
Norėdami suplanuoti, FPGA jei viskas LabVIEW programos ir sudaryti failą konvertuoti VHDL arba vieną, kad sutinka su FPGA (taip pat lengva, kaip ir į NXT), tačiau galioja tik 4 ar 5 modelių ir FPGA modulis kainuoja daug pinigų. Manau, už mikro versiją ARM ¿? Aš nepamenu, padarys tą patį.
Kiek galima gauti logiškai apibrėžta, klasterius ... C ty jei prijungti klasterį (pavyzdžiui, daugiau dalykų ir sudėtingų) skambučių bibliotekos funkcija mazgas (pirmiausia turite eiti ir įdėti į tipas Adpat tipą parametrų) jums duoti į antrąjį mygtuką, kad peržiūrėtumėte parinktis Vizų informacinės sistemos (VIS) ir paspausite "Sukurti". c failas. Na aš sakau tik gauti pradinį failo antraštėje. C užpildyti visą savo kodą.
Kaip visada LabVIEW CVI variantas, bet tai, kaip programuoti C (ne vizualiai) ir ragina LabVIEW bibliotekų sąsajos mygtukų subVI.
Sveiki,
Aš esu naujokas į DLL klausimais, bet man įdomu, jei MATLAB MEX failus, supratau, yra panašus į DLL, taip pat galiu juos naudoti LabVIEW. Tai reiškia, kad turiu, kodas C q yra sudėtinga ir buvo panaudota Matlab kaip MEX failus, ir aš naudoju jį, LabVIEW. Ne, jei įmanoma, arba jei turėčiau geriau konvertuoti šį kodą į C DLL su metodais, kuriuos pasiūlė.
Iki šiol niekada skaityti ką nors apie dll failus kaip Matlab MEX vadinamas. bet, žiūri NI.com su raktažodžiais "MATLAB Mex" paliko man taip:
* VI Mex naudojant NI LabVIEW Math sąsaja Toolkit Calling LabVIEW VIS iš The MathWorks Inc MATLAB ® programinės įrangos aplinka
* Čia aš manau, kad daro ryšį tarp Simulink ir LabVIEW NI LabVIEW modeliavimo sąsajos Toolkit
Norėdami naudoti į LabVIEW MEX nebuvo palikti nieko taip greitai ir aš skaityti susisiekti su LabVIEW bibliotekų niekada nebuvo, tačiau, žinoma, aš niekada nebuvo kitaip, arba nuo įprastų AutoCAD failus ... Taigi, jei jūs galite sudaryti C bet kokia programa ir padaryti DLL yra sprendimas.
*
[...]
Geras laikotarpis po to, kad sugeba sukurti dll remtis į LabVIEW nesvarbu, kurios sudarytojas jūs naudojate, tai atveria naujų galimybių pasaulį, bet taip pat pamatyti pasaulį problemų, ypač kai tai, ką mes darome, yra daugiau nei "Hello World". Dirbau sunku naudoti Dll manimi surinkta iš dirbtinių neurunales tinklo bibliotekų naudoti LabVIEW.
Pirma problema, duomenų tipai, kai reikia bibliotekos dll priimtą parametrų sudėtingų duomenų tipų, didelių struktūrų c + +, užduotis yra truputį kankinantis spręsti su šių kliūčių mažai, sukurti nuorodą funkcijas c + +, kuri gali tvarkyti duomenis struktūros C + + ir LabVIEW kad jie daugiau valgoma.
Antra problema, atminties valdymas, kartais, ypač kai pradėdami programavimo, jūs linkę galvoti: "jei jūs turite surinkti, nes tai gerai", tačiau jeigu kuriate kilpą LabVIEW kur funkcija suveikia tūkstančius kartų per sekundę , įsikūręs dll ir jei ši funkcija nėra tinkamai naudoti atminties galite tiesiog grąžinti sistema nestabili. Tai labai malonu matyti, kaip RNR dirbo puikiai, aš sumažėjo per kelias sekundes decepcioncuando matė viską ir sustojo kaip kompiuteris tapo lėtai. Aš patikrino visą kodo c + +, naikintojai, konstruktoriai, taip vadinamas naujas ir ištrinti, tačiau neaptiko jokių problemų.
Aš sutinku su jumis, tiesa, nes jis neturi gauti duomenis į LabVIEW dll, jei jūs praleidžiate su dydžiu, siekiant ką nors kita ... staiga LabVIEW crack ir staiga užsidaro. Ir lėtai aišku, bent jau 8.6.1.