제가 만든 어떤 제품(하드웨어)을 제어할 수 있는 DLL을 만들고있습니다.
그리고 제품 구매자들한테 DLL을 줘야 해요.
DLL은 C++로 제작하고있습니다. 이 DLL은 MFC개발자와 C#개발자들이 사용가능하도록 만들고 싶어요.
dll, lib, h 파일을 받은 MFC개발자는 아마 별 문제 없을겁니다.
문제는 C#쪽인데요.
처음 시도해 보는 방법으로는 C#에서 [DllImport(...)] 방식으로 했었어요.
전역함수는 호출할 수 있지만 Class는 안되는거 같더군요.
그래서 ManagedDLL을 추가 제작해서 테스트 해보니 되긴 합니다.
MyDLL -> MyDLL_Wrapper -> C#
이렇게 중간에서 연결고리? 같이 해주니까 되긴 하네요 ㅋㅋ
C# 개발자 입장에서는 [DllImport()] 방식이 더 편한가요?
아니면 DLL을 참조추가해서 using해서 사용하는 방법이 더 편한가요?
그리고 또 한가지
DLL을 제공해줄때 X86, X64 두가지 다 제공해줘야 하나요?
X86으로 제작된 DLL을 C#에서 사용하려니까 자꾸 에러가 뜹니다. (System.BadImageFormatException)
플랫폼을 Any CPU에서 X86으로 바꿔서 하니 정상동작을 하네요. 헐...
아무래도 X86, X64 둘다 제공해줘야겠죠?