Test로 해보았는데... 말그대로..
윈도우 폼으로 무언가를 만들고, 이 폼을 어디서든 막 쓰고 싶을 때... DLL 화 시킨뒤에,
어느 프로젝트로 윈폼을 만들어도, DLL을 IMPORT하여 쓰는 경우이다.
그냥 되는지 안되는지 테스트해볼까 하는 생각에 한거라... 이 방식대로 사용할 필요는 없다.
그냥 되는구나~ 라고 느낀 포스팅임.
1. 먼저 윈도우폼 프로젝트를 생성하자. 난 ThisIsDllForm으로 했다.
2. Form1.cs 부터 Form1.Designer.cs, Program.cs 모두 Form1이란 변수이름을 바꿔놓자,
쓰는 곳에서 햇갈리니까~
나는 DllForm 으로 바꿨다. 뭐 지금은 캡쳐할라고 대충 ㅡ,.ㅡ
디자이너 바꾸고...
Form1.cs 애도...
바꾸고..
Program.cs도
바꾸고..
빌드하니까....
햇갈릴 것 같으니까... 라벨하나 붙여놓자.
자 솔루션에 우측 마우스버튼 눌러서, 새 프로젝트 추가한다.
Windows Form 응용 프로그램 추가한다.
프로젝트 이름은 ThisisExe로 했다.
처음 만들었던, ThisDllForm윈도우폼 프로젝트는 프로젝트 구성을 눌러서
클래스 라이브러리로 출력형식을 바꾸어준다.
빌드해보면 이젠 Exe가 아니라 Dll 파일이 생성됨을 볼 수 있다.
DLL 프로젝트 말고, 새로 만든 EXE 프로젝트를 시작프로그램으로 설정한다.
Exe 프로젝트에 참조에 우측마우스버튼을 눌러서 참조를 추가한다.
솔루션 프로젝트에서 추가하든.
찾아보기 해서 DLL을 추가한다.
참조 맨 아래에 ThisisDllForm 이 추가됨이 확인되었다.
ExE 프로젝트 Program.cs 화면에서 수정해주면 끝난다.
1. Using 지시자 추가
using System.Runtime.InteropServices; // DLL IMPORT
using ThisIsDllForm; // 여러분들이 만든 DLL의 namespace
DLL IMPORT 관련한 'using System.Runtime.InteropServices' 이것은 DLL의 API를 끌어올 때,
원래는 다음처럼 사용된다.
EX)
[DllImport("InziPDF2Image.dll")]
public static extern int FunctionName (string arg1, int arg2);
2. Application.Run(new Form()); 은 주석처리하자.
3. 폼 객체를 생성해서 Run~
DllForm FormByDLL = new DllForm();
Application.Run(FormByDLL);
4. 실행화면에서, DLL에서 만들었던 라벨이 떠짐을 볼 수 있다.
DLL의 Form은 현재 Form1.cs, Program.cs, Form1.Designer.cs 등에는 아무런 관련이 없다.
DLL의 Form을 건들꺼면, DLL 프로젝트 내에서 건들거나, 생성된 객체를 이용해서 수정해야 한다.
출처 : 이딴거 없음. 내가 함
'I.T' 카테고리의 다른 글
폴더, 파일 삭제시, 0x80070091 디렉터리가 비어있지 않습니다. (0) | 2015.09.24 |
---|---|
네트워크 폴더공유(공유기), 공유폴더 사용하는 방법 (0) | 2015.07.19 |
Oracle(오라클) 11g R2 삭제(제거) 및 설치부터 sql developer DBMS 셋팅까지 (1) | 2015.06.08 |
'Space Sniffer' 컴퓨터 각 드라이브 용량 체크 스니퍼~ (0) | 2014.10.14 |
'MS14-045' Windows Update 하지말것. MS 공식입장 밝혀..KB2982791 KB2970228 KB2975719 KB2975331 (0) | 2014.08.18 |