본문 바로가기

프로그래밍/C++ CLI

C++/CLI 에서 Native C++ DLL 사용하기

1. Generate DLL (Native C++)

일단 아래 링크를 따라서 C++ DLL 을 생성한다.

주의할 점은 [To copy the DLL in a post-build event] 항목을 제외하고 진행을 해야 한다는 점이다.

이 항목을 제외하고, 생성된 DLL 과 LIB 파일을 CLIENT 프로젝트로 복사해서 사용한다.

 

https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=vs-2017

 

Walkthrough: Create and use your own Dynamic Link Library (C++)

Walkthrough: Create and use your own Dynamic Link Library (C++) In this article --> This step-by-step walkthrough shows how to use the Visual Studio IDE to create your own dynamic link library (DLL) written in C++, and then use it from another C++ app. DLL

docs.microsoft.com

이 예제에선 클래스가 아닌 함수만을 이용했는데 클래스를 사용하면 더 간단하다.

 

class __declspec(dllexport) CSimpleClass {

 // code

};

 

이런 식으로 하고 나머지 함수들은 생략하면 된다.

참고: https://blog.danggun.net/799

 

c++ DLL을 C#에서 사용해보자 ( 클래스 마샬링 )

관련글 c++ DLL을 C#에서 사용해보자 ( 함수 마샬링 ) c++ DLL을 C#에서 사용해보자 ( 클래스 마샬링 ) 클래스 마샬링을 할일이 없엇 신경을 안쓰다가 요번에 스카이프 api나 제가 직접 마샬링 해볼까 해서 클래스..

blog.danggun.net

 

 

2. Client Project (C++/CLI)

 

클라이언트 프로젝트에도 Native C++ 에서 추가했던 링커나 인클루드 디렉토리들을 동일하게 설정한다. (librealsense.lib, opencv.lib)

전 단계에서 생성된 DLL 과 LIB 파일을 클라이언트 프로젝트 폴더로 복사한다.

-> 단점: 소스를 수정한 수 DLL을 빌드 할 때마다 복사 붙여넣기를 해야 한다. (아마 다른 방법이 있을 것이다)