728x90

퍼온 사이트 : http://blog.naver.com/idkhs04/40108865990
그대로 복사 해 온 내용입니다.


이번에는 dll 파일을 만들어서
C#파일에 적용하는 방법까지 한번 해볼까 합니다.
 
우선은 dll로 만들고 싶은 코드(클래스화된...) 물론 네임스페이스까지 적용된코드를
이렇게 따로 지정해둡니다. 아무 에디터라도 상관없습니다.
글을 적을수있는 어떠한 에디터라도요 저는 메모장에다가 작성했습니다.
 
참고로 그림보다는 설명을 잘 들어주시면 감사하겠습니다.
 참고) 메모장 켜기
         - 윈도우키 + R (실행) -> notepad 라고 입력 (이러면 메모장이 켜집니다)
 
간단하게 "hello~C# dll "이라는 글자(stirng)을 출력하는 클래스를 만들었습니다.
그럼 이 클래스의 메소드를 출력하면 저 글자를 리턴 받게 되겠지요
 
 
작성한 코드를 저는 testC#이라는 폴더에다가 저장하되
파일명을 test_dll.cs 라고 저장했습니다(물론 .cs는 확장자명이며, cs 파일이어야 합니다)
 
 
자 그럼 컴파일러를 찾아야겟지요, 컴파일일러를 찾아서 이 폴더에서
컴파일러가 동작하게 해야겠습니다. 이를 우리는 패스지정이라고 하는데
기본적으로 닷넷컴파일러는 아래 그림과 같이 (위쪽 빨간줄)에 저장 되어 있습니다.
csc.exe 파일이 c#컴파일러입니다. 자 이제 어디에 있는지 확인 하셨지요
참고로 전 닷넷 프로엠워크 3.5 버전이기 때문에 3.5컴파일러 입니다.
 
컴파일러의 위치를 확인했으니 이제 아까 우리가 저장해놓은 cs파일의 위치를
cmd(도스명령프로프트)창에서 찾아가보죠
윈도우키 + R (실행) -> cmd 라고 입력하면 아래 그림과 같이 뜨게 됩니다.
 
그럼 밑에 그림과 같이 검은 화면에 하얀색 글자가 뜨는데
예전에 윈도우가 나오기전에 이 창을 주로 써서 컴퓨터에게 명령을 내렸지요
 
자 dir 이라고 치면 현재 위치에서 있는 모든 디렉토리를 볼수 있습니다.
 
저는 바탕화면에 있는 testC#이라는 폴더를 만들어서 거기에다가 cs파일을
저장했으므로 하나하나 찾아가서 해당폴더에 왔습니다.
 
그리고 해당폴더에 와서 path = [아까전에 확인 csc파일이 있던 폴더명] 입력합니다.
이렇게 지정을 한다면 이제 이 폴더내에서는 C#컴파일러를 사용할수 있게 됐습니다.
 
 
이제 dll파일을 만들어볼까요..위의 그림을 참고하시면
csc /t:library test_dll.css 라고 입력을 하면  사각블록의 메시지가 뜨면서
컴파일이 됐다고 알려줍니다. 그렇다면 이제 dll파일 완성
 
확인 해볼까요? 네..정상적으로 만들어졌네요
 
혹시나 해서 해당폴더를 가보니 만들어져있군요
 
자 그림이 생략이 됐는데요.
왼쪽에 솔류션 탐색기를 보시면 참조란 곳에 오른쪽 마우스를 눌러서 참조추가를 누른후
dll파일이 있는 폴더를 찾아가서 아까전에 만든 파일을 찾습니다.
그리고 위와같이 test.dll파일이 생기었고,
이것을 참조하기 위해서 usinsg test;라고 입력해줍니다.
여기서 test는 dll의 클래스의 네임스페이스 이름입니다.
 
 
위의 그림을 봅니다  에디터 창에다가
메인메소드 안에 아까전에 만들었던 dll 파일에서의 클래스를 참조해서
객체를 만들었습니다.
 
그리고 나서 Ctrl+F5를 눌러서 빌드합니다
그럼 저렇게 실행이 되었네요
 
설명이 아주 부족했지만,...물론 도스명령어를 모르시는분들은 답답했을지도 모르겠네요
여기서 필요한 명령어는 얼마 되지 않으니깐 갠적인 공부가 요구됩니다;;하하;;
하는방법만 올려드렸네요. dll파일을 왜 만드는것은 이 카테고리의
전 포스트를 참고하시고, 그래도 이해가 안되면, 책을 참고하시는것이 좋습니다.
 
 
 
다음에는 데이타 타입에 대해서 언급해 보도록 하지요 
 
728x90

'개발및업무 > C#' 카테고리의 다른 글

Visual Studio .NET 단축키 안내  (0) 2011.05.16
dll로 소스 찾기 - (cs파일이 없는 경우)  (0) 2010.12.11
Windows Presentation Foundation 소개  (0) 2010.12.11
클래스와 멤버변수  (0) 2010.12.03
Math.Round 함수  (0) 2010.11.30

+ Recent posts