C# COM 디버깅 / C# DLL 디버깅 COM DLL 실행 파일이 아니므로 디버깅 시 실행하면 직접 실행할 수 없다는 오류 창을 보여준다. COM DLL을 참조하는 실행파일의 프로젝트에서 디버깅 모드로 실행해도 COM DLL 브레이크 포인터가 안 잡힌다. 그래서, COM DLL을 참조하는 외부 프로그램을 아래 처럼 등록하고, COM DLL 을 실행하면 된다. 1. 솔루션 속성 클릭 2. 디버그에서 COM 을 참조하는 외부 프로그램을 등록하고 COM을 실행한다.
RCW (Runtime Callable Wrapper) C++ 로 만들어진 COM에 C# 이 접근할때 바로 안되므로 둘 사이 연결해주는 Proxy 가 RCW 이다. 보통, C# 프로젝트에 C++ COM을 참조추가하면 RCW가 자동으로 만들어 진다. 수동으로 만들려면, tlbimp test.dll /out:test.dll 실행하면 된다. 이 dll 을 GAC에 등록하려면 al.exe 를 실행한다. 이 역시 C#에서 참조추가할때 자동 실행된다.
C# COM 배포 배포 설치 파일을 만드는 방법(InstallShiled)은 모른다. 수동으로 등록 방법 이다. 1. COM 컴포넌트를 설치할 PC에 .NET Framework 이 설치되지 않았으면 Microsoft 에서 다운로드하여 설치한다. (.NET Framework 최신 버전이 하위 호환 안되어 하위 버전을 다운로드 해야할 경우도 있다) https://www.microsoft.com/net/download/windows 아래 그림에서 .NET Framework(노란색)을 클릭해서 다운로드해서 설치한다. .NET Framework 설치된 버전 확인은 윈도우10 기준으로 아래 그림과 같이 이미 v1~v4 까지 설치 되어 있었다. 2. 등록할 _COMTest.dll 파일을 원하는 폴더 c:\data\c..
C# COM을 COM+ 으로 만들어 등록하기 C# dll 처럼 만든다. 1. System.EnterpriseService 를 참조한다. 2. using System.EnterpriseServices; 코드 추가 3. Strong Name 파일을 만들기 sn -k dnskorea.snk 를 실행하면 dnskorea.snk 파일이 만들어진다. 4. 만들어진 dnskorea.snk 파일을 cpp 소스가 있는 폴더에 복사한다. 5. 만들어진 String Name을 AssemblyInfo.cs 파일에 추가한다. 위 그림과 같이 17행에 추가한다. 6. System.EnterpriseServices 참조추가하고 아래 처럼 코드를 추가한다. 22~24행 과 29행 처럼 코드 추가한다. 29행 처엄 외부 호출되는 함수..