[C++] C# 연동하기 / C# dll 파일 만들기
[C# DLL 파일 생성 및 C++ 연동법 ]
1. C#에서 DLL파일 생성
0) VS 관리자 권한으로 실행!
1) 새 프로젝트 - 클래스 라이브러리(.NET Framework)
2) using System.Runtime.InteropServices; 코드 추가
3) 프로젝트 우클릭 - 속성 - 응용프로그램 - 어셈블리 정보 - 어셈블리를 COM에 노출 체크
4) 빌드 - COM interop 등록 체크
5) 도구 - GUID 만들기 - 5번 항목 복사
6) 클래스 위에 GUI 붙여넣기
7) Class를 Interface로 변경
8) Interface에 메소드 선언
9) 아래(같은 레벨)에 Interface를 상속받은 클래스 선언(사용될 클래스)
10) 쓰레드 사용시 반드시 static으로 선언
11) C# 코드 빌드
12) 프로젝트 내 \bin\debug\'프로젝트명'.dll 생성 확인
13) VS 개발자 명령 프롬프트 관리자 권한으로 실행!
14) 디렉토리를 프로젝트\bin\debug\로 변경
15) regasm '파일이름'.dll /tlb:'파일이름'.tlb 실행
2. C++에서 C# DLL파일 사용
0) VS 관리자 권한으로 실행!
1) include 밑에 #import "파일이름.tlb" no_namespace named_guids 추가
2) 'C#클래스명' *'객체이름' = NULL;
3) CoInitialize(NULL);
4) HRESULT hr = CoCreateInstance(CLSID_'인터페이스명', NULL, CLSCTX_INPROC_SERVER, IID_'클래스명', reinterpret_cast<void**>(&'객체이름'));
5) if (SUCCEEDED(hr)) 후 '객체이름'->'메소드명' 으로 사용
'C, C++' 카테고리의 다른 글
C/C++ 구조체 사용법 및 예제 (1) | 2018.10.08 |
---|---|
C/C++ 배열 사용법 (0) | 2018.10.05 |
C 파일처리 (0) | 2018.10.02 |
C++ 벡터 사용법 (2) | 2018.09.26 |
C언어 포인터 (8) | 2018.09.25 |
C++ 자바 상속 비교 (0) | 2018.09.08 |
C 랜덤 - 난수 생성하기 (7) | 2018.09.06 |
C++ String 문자열 사용법 정리 (0) | 2018.08.20 |