[원문] http://www.mylv.net/know_new/view.asp?sDiv=&no=157&page=1&txtsearch=DLL&sltsearch=bstitle
http://zone.ni.com/devzone/cda/tut/p/id/3063

LabVIEW 에서 DLL 작성

LabVIEW Application Builder를 사용하면 VIs에서 공유 라이브러리(DDL)를 생성할 수 있으므로 LabWindows/CVI, Microsoft Visual C++ 및 Microsoft Visual Basic과 같은 텍스트 기반의 프로그래밍 언어를 사용하여 공유 라이브러리의 VI를 호출할 수 있습니다.

참고: LabVIEW Professional Development System은 Application Builder를 포함합니다. LabVIEW Base Package 또는 Full Development System을 사용하는 경우, 아래의 관련 링크를 사용하여 Application Builder를 별도로 구입하실 수 있습니다.

아래 대화상자의 필드 설명을 포함하여 공유 라이브러리 생성에 대한 자세한 내용은Help»Contents and Index를 선택하면 이용 가능한 LabVIEW Help를 참조하십시오.

목차:

 

VI 생성

다음 단계에 따라 화씨 온도를 섭씨 온도로 전환하는 VI를 생성하십시오. VI는 텍스트 기반 프로그래밍 언어에서 쉽게 호출할 수 있습니다.

  1. 다음 방정식을 사용하여 변환을 수행하는 VI를 생성합니다.

Deg C = (Deg F - 32) / 1.8

 

블록다이어그램과 프런트패널은 다음과 같이 나타납니다.


  1. 커넥터 팬(connector pane : 윈도우 우측 상단의 그림에서 오른쪽 마우스 클릭)의 터미널에 컨트롤과 인디케이터를 할당합니다. 이 단계는 DLL을 생성하는 데 필요합니다. 터미널에 컨트롤과 인디케이터 할당하기에 대한 자세한 내용은 Help»Contents and Index를 선택하여 LabVIEW Help를 참조하십시오.
  2. DLL을 생성할 때 VI가 메모리에 있을 수 없으므로 VI를 저장하고 닫습니다.


 

LabVIEW에서 DLL 생성

 

다음 단계에 따라 작성한 VI에서 DLL을 생성합니다.

  1. 새 VI를 열고 Tools»Build Application or Shared Library(DLL)를 선택합니다.
  2. Build Target 필드의 Shared Library(DLL)를 선택하고 DLL과 대상 및 지원 디렉토리를 지정합니다.



  3. Source Files 탭을 클릭하고 Add Exported VI 버튼을 클릭한 다음 주 VI를 더블 클릭합니다. 그러면 다음과 같은 대화상자가 나타납니다.
  4. 입력 파라미터(DegF)를 선택하고 더하기(+) 버튼을 클릭하여 DLL에 입력을 추가합니다. 또한 파라미터를 값 또는 값에 대한 포인터로 전달할지를 선택합니다. 이 경우 Pass By Field에서 Value를 선택합니다. 함수 프로토타입은 대화상자의 하단에서 바뀝니다.


  5. Deg C 출력과 같은 다른 파라미터에 대해 이전 단계를 반복합니다. 이 출력은 기본적으로 포인터로서 전달됩니다.



  6. 또 한 함수의 반환 값으로 출력 파라미터를 선택할 수 있습니다. 다음 함수는 void 대신 DegC 64 비트 부동 소수점 수를 반환합니다. 따라서 함수에서 출력을 생성할 때 두 가지 옵션을 사용할 수 있습니다. 출력 파라미터로 추가하거나 반환할 수 있습니다. 다음 함수는 두 가지를 모두 수행합니다.
  7. Define VI Prototype 대화상자에서 OK 버튼을 클릭합니다  
  8.  Build Application or Shared Library (DLL) 대화상자에서 Build 버튼을 클릭하여 DLL을 생성합니다. LabVIEW는 헤더 및 라이브러리 파일과 함께 대상 디렉토리에 DLL을 생성합니다. 이 예에서 대상 디렉토리는 c:\temp\app입니다.

LabVIEW DLL 호출


Microsoft Visual Basic, Microsoft Visual C++., and LabWindows/CVI에서 이 DLL을 호출하는 방법의 예에 대해서는 다음 링크를 참조하십시오.

See Also:
Calling a DLL from Microsoft Visual Basic That Was Generated By LabVIEW 6i
Calling a DLL from Microsoft Visual C++ that Was Generated by LabVIEW 6i
Calling a DLL from LabWindows/CVI That Was Generated by LabVIEW 6i

Related Links:
LabVIEW Application Builder for Windows
LabVIEW Application Builder for Mac OS
LabVIEW Application Builder for Sun Solaris 2
LabVIEW Application Builder for HP-UX
LabVIEW Application Builder for Linux
[원문] http://zone.ni.com/devzone/cda/tut/p/id/3927

LabVIEW 6i can create DLLs that can be used in other programming environments. This document demonstrates how to use Microsoft Visual C++ to call a simple function in a DLL that was generated by LabVIEW 6i. The first two steps in this process are to create the VI and then create a DLL from LabVIEW 6i. The document linked at the bottom of the page shows how this is done.

1. Open up a new Visual C++ project by selecting File>>Menu and then selecting the Projects tab. Select the Win32 Console Application and enter a project name and location for it to be stored.


[+] 크게 보기

2. Open up a new Visual C++ Source File by selecting File>>Menu and then selecting the Files tab. Select the C++ Source File and enter a file name and location for it to be stored.


[+] 크게 보기

3. Type the source code as shown below. Make sure to include the header file that was created by LabVIEW (Convert_Temp.h). Remember that the function prototype for the DLL that you created was “float64 F_to_C(float64 DegF, float64 *DegC). This code simply calls the temperature conversion VI (F_to_C) and then prints the input (F), output (C), and return (ret) value. Notice that the address of the output (C) must be passed to the function, since it was defined as a Pointer to a Value.



[+] 크게 보기

4. Now add the header file that was created by LabVIEW (Convert_Temp.h) to your project. Select Project>>Add To Project>>Files as shown below.


[+] 크게 보기

5. Select the header file and click OK.




6. Repeat Steps 4 & 5 for the library file (Convert_Temp.lib).




7. Make sure the compiler knows where to locate the header file you added in steps 4 and 5. To let the compiler know where to look for this file, select Tools>>Options from the menu bar.


[+] 크게 보기


8. Select the Directories tab and select Include files in the Show directories for field. If the path where the header file is located is not listed, add it by clicking the dotted box above the Directories box. The header file that was created by LabVIEW references another header file called extcode.h. This header file contains LabVIEW defined datatypes that you need to call the DLL. It is generally located in the LabVIEW file under cintools, as shown below.





9. Your DLL must be in the same folder as the project, so in this case you must move Convert_Temp.dll from C:\TEMP\app\ to C:\TEMP\FtoC\.


[+] 크게 보기

10. You can now compile and build the executable.


[+] 크게 보기


11. Troubleshooting

If you get the following error when you compile, add the path to the header file. See steps 7 & 8.

c:\temp\ftoc\deg.c(2) : fatal error C1083: Cannot open include file: 'Convert_Temp.h': No such file or directory
Error executing cl.exe.


If you get the following error when you try to run the executable, the DLL file is probably not in the same directory as your project. See step 9.



12. Run the executable.



[+] 크게 보기


13. Notice that the 75 degrees Fahrenheit was converted to 23.9 degrees Celsius. Also, notice that the return value is equal to 23.9. This is because you set the return value equal to DegC when the DLL was built in LabVIEW.


[+] 크게 보기



-The link shows how the DLL called in this Microsoft Visual C++ example was created in LabVIEW 6i.

토요일 오후부터 일요일까지 헛간 해체작업을 했다.

엄니 피곤할까봐 일찍 철수했는데.. 그 뒤에도 작업을 하셨단다... ㅠㅠ

다음주는 조금 바쁘겠네...

01

'3.막찍사(사진 이야기) > 01.집이 아닌곳' 카테고리의 다른 글

2008.04.06 - 청남대..  (0) 2008.04.06
2008.03.08  (0) 2008.03.08
2008.03.02  (0) 2008.03.02
012345678910111213

간월암... 해미 읍성.. 연포탕(이건 좀 짜서.. ㅠㅠ) 그리고... 차암동...

아침 10시부터 밤 10시까지 12시간을 움직인듯...

이날 저녁은 누룽지 삼계탕으로 마무리....

'3.막찍사(사진 이야기) > 01.집이 아닌곳' 카테고리의 다른 글

2008.03.16  (0) 2008.03.16
2008.03.02  (0) 2008.03.02
2008.01.26 - 남당리... 수덕사...  (0) 2008.01.27

Today Photo by Lee Jung Eun..

012345


'3.막찍사(사진 이야기) > 00.집과 주변에서' 카테고리의 다른 글

2007.06.28 - 목욕, 그리고 일상  (0) 2008.06.28
오래간만의 업.. 2008.02.29  (0) 2008.03.01
2008.01.16  (0) 2008.01.16
1. "오늘까지"라는 말은 "내일 아침까지"라는 말이다.

2. 프로그램은 내가 원하는대로 움직이지 않는다. 타이핑대로 움직인다.

3. 요구 사양은 프로그램을 완성한 후에 추가된다.
    기본 사양은 완성품을 고객이 보고 나서 결정된다.
    상세 사양은 사용자가 프로그램을 사용해 본 이후에 결정된다.

4. 소프트웨어 설계에는 두 개의 방법이 있다.
   하나는 결함이 있을 수 없을 정도로 단순하게 만드는 방법이다.
   다른 하나는, 분명한 결함을 눈치채기 어려울 정도로 복잡하게 만드는 방법이다.

5. 코드는 개발 현장에서 사용하는 것이 아니라 납품처에서 사용하는 것이다.
    디버그는 납기일까지 하는 것이 아니라, 납품된 이후에 하는 것이다.

6. 프로그래머를 죽이기 위해서는 칼이 필요없다.
   프로그램의 요구조건을 3번만 바꾸면 된다.

7. 다른 사람을 믿으라. 그 사람이 해결해줄지도 모른다.
   주의사항 - 먼저 자신을 의심해라.

8. 개발에 마지막은 없다. 출시만이 있을 뿐이다.

9. 클라이언트의 요구사항이 제 아무리 뒤늦게 추가되어도 납기일은 변하지 않는다.
    이것을「납기 불변의 법칙」이라고 한다.

10. 우리의 고객들은 물과 기능추가를 공짜라고 생각하고 있다.

11. 주머니가 짠 고객일수록 잔소리가 많다.

12. 개발 스케줄은 산수를 무시하며 짜여진다. 영업과는 1+1=2를 이해하지 못하는 사람의 모임이다.

13. 한 명이 쓰러지면 모두가 쓰러진다.

14. 버그가 너무 심하다? 걱정마라. 어느 순간 그것은 기본 사양이 될 것이다.

15. 좋은 설계는 한 명의 천재보다 세 명의 범재를 요구한다.
     나쁜 설계는 백명의 범재보다 한 명의 천재를 요구한다.

16. 고객에게 시스템 엔지니어는 부하이며, 프로그래머는 가축이다.
     시스템 엔지니어에게 고객은 돈이다.
     프로그래머에게 고객은 보이지 않는 악성 바이러스다.

17. 돈과 시간만 있으면, 그 어떤 시스템이라도 만들 수 있다고 생각하는가?
     웃어라. 그 기회는 영원히 주어지지 않는다.

18. 품질은 사양 변경의 수와 규모에 의해, 얼마나 열화될지 결정된다.

19. 영업과는 공상이 실현된다고 생각하는 몽상가이다.
     시스템 엔지니어는 넘을 수 없는 벽이 없다고 믿는 모험가이다.
     프로그래머와는 몽상가와 모험가에 의해 칠흑의 바다에 내던져진 표류자이다.

20. 유능한 프로그래머가 프로그램 설계개념도를 받아들고 최초로 하는 일은, 프로그램의 목적을 이해하는 것이다. 그리고 그 다음으로 하는 일은, 지정된 방법과 시간 안에는
도저히 그 목적을 완수할 수 없다는 사실을 시스템 엔지니어에게 이해시키는 일이다.

21. 프로그램이란, 운과 감에 의해서 작성되는 기적이다.
     운과 감이 없다면, 그 기간 내에 그러한 목표를 실현될 수 있을 리 없다.
     따라서 사양 변경은 기적에 트집을 잡는 건방진 행위이며, 사양 추가는 기적이 두 번 일어날 것으로 믿는 무모한 행위이다.

22. 시스템 엔지니어는 지구력, 프로그래머는 순발력.

23. 정시에 퇴근하면, 일이 늘어난다.

24. 완벽한 프로그램은 완벽한 시간과 돈을 필요로 한다.
     미국의 국가 예산을 무제한으로 사용하는 NASA마저도, 아직 시간과 돈이 부족하다고 한다.

25. 눈으로 훑어볼 틈이 있다면 움직여라. 뇌세포보다 CPU가 더 해석이 빠르다. 그리고, 그 사이, 쉴 수 있다.

26. 불편함을 버그라고 부를 것인가, 사양 상의 제한 사항이라고 부를 것인가는 남겨진 개발일자와 납기일에 의해 결정된다.

27. 정장 대신 캐쥬얼을 입고 출근하는 "캐쥬얼 데이"를 세간에서는 휴일이나 공휴일이라고 부르는 것 같다.

28. 프로그램은 머리로 기억하지 않는다. 몸으로 기억한다.

29. 내일 쉴 수 있다면 오늘 죽어도 괜찮다.

30. 고객은 거짓말을 한다.
     영업은 꿈을 말한다.
     시스템 엔지니어는 공상을 이야기한다.
     프로그래머는 과묵해진다. (혼잣말은 많아진다)

31.「네, 할 수 있습니다」라고 말하기 전에 10초만 곰곰히 다시 생각해보라.

32. 프로그래머는 1분 생각하고 1일을 코딩에 소비한다.
      1시간 생각하고 1시간 코딩하는 대신에 말이다.

33. 납품 이후의 디버그는 버그를 부른다.

34. 세 개의 디버그는 하나의 버그를 낳는다. 이것을 버그의 엔드리스 루프라고 한다.

35. 안 좋은 예감은 반드시 적중한다. 그러나 프로그래머는 그 안 좋은 예감에 반응하지 않는다. 그것은 시스템 엔지니어의 일이다.

36. 아수라장을 해결할 수 있는 방법은 오직, 고객이 돈을 지불하는 것 뿐이다.

37. 아마추어는 버그발견의 천재이다.

38. 아, 그건 마이크로소프트에서만 가능한 주문입니다.

39. 프로그래머가 불만이라고 생각하는 부분은 고객도 반드시 불만이라고 생각한다.

40. 건강하기 때문에, 건강을 해친다.

41. 그건, 당신이 말한 요구조건입니다만.

42. 아, 개발실의 창문은 안 열립니다. 그 이유는 옛날에 한 프로그래머가 그 창문에서···
43. 고객은 최악의 사태를 믿지 않으며, 그 사태에 대한 준비를 악질적인 비용청구라고 생각한다.
시스템 엔지니어는 최악의 사태를 대비하고 준비하려 한다.
프로그래머는 최악의 사태를 누구보다 잘 예상하지만, 무시한다.

44. 만약 다른 직업을 갖게 된다면, 정시퇴근을「도망」이라고 부르지 않는 직업이 좋을 것 같다.

45. 시스템 엔지니어가 프로그래머에게 말하는「상식」은 3시간마다 변한다.

46. 최소한 자기가 쓴 시방서는 읽어주세요.

47. 고객이 시스템 엔지니어에게 사랑받는 방법은, 시스템 개발에는 시간이 곧 돈이라는 사실을 깨닫고 빨리 최종요구조건을 확정하는 것이다.
SE가 고객에게  사랑받는 방법은, 프로그래머에게 미움받는 것이다.

48. 납기일이란, 작업현장이 우리 회사에서 고객의 회사로 바뀌는 날을 의미한다.

49. 가끔 일어나는 버그는 버그가 아니다. 스펙이다.

50. 개발비의 30%는 프로그램의 요구조건을 확정하는데 사용된다.
     개발비의 30%는 프로그램의 요구조건을 변경하는데 사용된다.
     개발비의 30%는 프로그램의 버그를 잡는데 사용된다.
     개발비의 10%만이 프로그램의 개발에 사용된다.

은주 결혼식날.....

012345678910

'3.막찍사(사진 이야기) > 01.집이 아닌곳' 카테고리의 다른 글

2008.03.08  (0) 2008.03.08
2008.01.26 - 남당리... 수덕사...  (0) 2008.01.27
2008.01.19..  (1) 2008.01.20

감기 몸살로 회사 월차낸날...

이날 낮에 외출을 해야만했다.. 그 놈의 전세집 때문에... ㅜㅜ.. 돈만 계속 나가는 전의 전세집...

0123456789101112131415

'3.막찍사(사진 이야기) > 00.집과 주변에서' 카테고리의 다른 글

2008.03.07  (0) 2008.03.08
2008.01.16  (0) 2008.01.16
일상...2008.1.10  (0) 2008.01.11

+ Recent posts