앵벌이 프로젝트 작업중에 C#과 VB를 연동하는 부분이 있어서 글로 남긴다.

프로젝트 투입시 C#을 알고 시작한게 아니라서 더 쉬운 방법이 있거나 올바른 방법이 있는지 모르겠다.

검색엔진도 사용해 보았으나 만든 개인만이 알아보게 만들어 놨지 인터페이스 별로 설명한 사용방법은 없었다.

결국 자바나 VB를 했던 통밥으로 들이 박으면서 알아낸 것이다.

잊혀지는게 두렵다. 그래서 남긴다.

 

솔루션 탐색기에서 해당 프로젝트명을 마우스 오른클릭하여...

1. 프로젝트 속성 ==> 응용프로그램 탭 ==> 클래스 라이브러리

2. 프로젝트 속성 ==> 응용프로그램 탭 ==> "어셈블리정보" 버튼클릭 ==> "어셈블리를 COM에 노출"을 체크

3. 프로젝트 속성 ==> 빌드 탭 ==> "COM Interop등록"을 체크

4. 아래의 메서드 추가한다.

//#################################

       public void showBox(String A)
        {
            MessageBox.Show(A);  //물론 "System.Windows.Forms.dll"DLL이 등록되어 있어야 한다.
        }

//#################################

5. 이렇게 하고 해당 프로젝트를 빌드를 하면

프로젝트 속성 ==> 빌드 탭 ==> "출력"섹션에서 정의된 출력경로로 해당 프로젝트의 TLB파일이 생성될 것이다.

 

VB6 에서 C#에서 생성한 TLB파일을 사용하는 방법은 아래와 같다.

1. 프로젝트 ==> 참조 ==> "찾아보기" 버튼클릭 ==> 생성된 TLB파일을 선택한다.

2. C#의 솔루션명이 test이고 클래스명이 test 일 경우.

//#################################

Dim testObj As test.test
Set testObj = New test.test
call testObj.showBox("aa") 'VB메시지박스가 아니라, C#의 메시지 박스가 나온다.

//#################################

3. 실행

==> VB 에서 C# 의 클래스 라이브러리를 호출해서 C#의 메시지 박스가 나온다.


Posted by bestrok
,