Microsoft MVP성태의 닷넷 이야기
c++ 에서 C# DLL 사용 문의 [링크 복사], [링크+제목 복사]
조회: 11091
글쓴 사람
진우
홈페이지
첨부 파일
 

VS2015 에서 C++ exe 프로젝트와 C# DLL 프로젝트가 있습니다.

C++ 프로젝트에서는 C# DLL 함수에 매개변수 값들을 전달하고
C# DLL 에서는 엑셀 파일을 생성하고 전달 받은 데이터를 write 하도록 만들었습니다.


C++ 에서 C#으로 배열을 매개변수로 전달하여 그 결과를 c++ 에 반환하도록 하고싶습니다
(현재는 그냥 매개변수를 여러개 만들어서 호출하도록 만들었습니다.)


C++ DLL 을 C# 에서 호출하는 자료는 많은데 그 반대의 경우는 찾기가 힘듭니다.
혹시 어떤 키워드로 검색을 하는게 좋은지 궁금합니다. (_ _)








[최초 등록일: ]
[최종 수정일: 5/30/2020]


비밀번호

댓글 작성자
 



2020-06-01 12시42분
C# DLL은 일반적으로 COM 개체로써 제공되므로 C++ 프로젝트에서는 또 다른 COM 개체를 사용하듯이 하면 됩니다. 다음의 글에 간단한 예제가 나옵니다.

C#에서 만든 COM 객체를 C/C++로 P/Invoke Interop 시 메모리 누수(Memory Leak) 발생
; https://www.sysnet.pe.kr/2/0/12162

또는, C++/CLI를 사용할 수도 있고 아니면 C++ DLL처럼 export 함수를 제공할 수도 있습니다.

C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법
; https://www.sysnet.pe.kr/2/0/11052

배열을 매개 변수로 전달하는 것은 각각의 규칙에 맞게 전달하면 됩니다. 단순하게는 그냥 C# DLL에 포인터와 그 포인터에 할당받은 크기를 인자로 넘겨서 처리할 수도 있을 것입니다. 또는 일반적인 primitive 타입의 경우라면 C# 측에서 직접 배열 인자를 써도 됩니다. 대충 구글에 "how to pass array from C++ to C#"와 같은 검색어로 치시면 많은 글들을 볼 수 있을 것입니다.
정성태
2020-06-01 07시37분
[진우] 네 말씀대로 c# DLL은 c++ 에서 com 컴포넌트 처럼 사용하더라구요
링크 글은 제가 못봤던 자료인데 잘 참고하겠습니다.
그리고 알려주신 검색어로 검색해보니 제가 원하던 자료가 잘나오네요
역시 영어 구글링이 중요한것같습니다
답변 정말 감사합니다~!! ^^
[guest]

... 16  17  18  19  20  21  22  23  24  25  26  27  [28]  29  30  ...
NoWriterDateCnt.TitleFile(s)
51837/2/20197831.NET Compact Freamwork 컨트롤러 더블버퍼링 [1]
5182wpf ...7/2/20198029wpf 질문 드립니다. [1]파일 다운로드1
51817/1/20198435DataGridview Doublebuffer 에 대해서 질문드립니다. [2]
5180김대훈6/25/20198484배열과 반복문에서 질문드립니다 [2]
5177농상6/13/20199647멀티스레드 건의 [2]
5176이선호6/13/20199230안녕하세요. 닷넷 문제로 검색하다 알게되어 들어왔습니다. 현재 IIS 문제가 있어 질문드립니다. [1]
5175Chobo6/12/20199202WPF Ellipse 그리기! [3]
5174농상6/11/20198541ThreadPool 조인에 관해 [1]
5173전우치6/9/20198981공유 리소스에 대한 스레드 동기화 처리를 위해서 lock 이용 시 문의 [3]
5172김대훈6/7/20197768너무힘드네요 공부에 대한조언부탁드립니다 [2]
5171조남석6/4/20197472EX)11-2(treeview)에 대한 질문입니다. [3]
5170레리6/4/20198083Setup 프로젝트 레지스트리 설정 관련 질문입니다. [1]파일 다운로드1
5169농상6/3/20197863멀티스레드 파라미터 관련 [2]
5168익명유저5/30/20197148항상 정말 감사드립니다... [1]
5167WPF5/23/20198051질문드립니다. [1]
5165이대희5/22/20197211Visual Studio 설치 구성요소 문의 (C# 7.3 개정판 관련) [1]
5164레드5/21/20198725실행 과정과 실행파일 디버그 시 Icon변경 질문드립니다. [5]
5163이대희5/20/20197032시작하세요 C# 7.3 프로그래밍 책 도착했습니다. [1]
5162채홍윤5/14/20199847Mono Develop window 설치 [6]
5161정대영5/13/20197776VS 2013에서 C#6.0(.netFramwork 4.6.1) $ 디버깅 오류 [1]
5160초보개발자5/13/20198770wcf 관련 국내 서적 살만한 책이 있나요? [2]
5159sdh25/9/20198293VS 2010 버전에서 생성한 DLL을 VS 2017버전에서 실행 시 에러 [2]
5158sdh5/8/20197197Visual studio 2010 버전에서 생성한 Project를 Visual studio 2017버전에서 실행에러 [1]
5157김경훈5/8/201910190Task 만들때 넘겨주는 CancellationToken은 어디서 사용 되는 건가요? [4]
5156rysoo5/8/20198452yield return의 리턴 타입 질문 드립니다. [4]
5155세퉁5/7/201910353관리자 권한으로 실행 시 알림창(?) 없이 바로 실행 시킬 수 있는 방법이 있을까요?? [2]파일 다운로드1
... 16  17  18  19  20  21  22  23  24  25  26  27  [28]  29  30  ...