PIDL 컴파일러 실행
Last updated
Was this helpful?
Last updated
Was this helpful?
을 이용하시면 편리하게 PIDL 파일 작성 및 컴파일이 가능하지만 사용할 수 없다면, 아래의 방법으로 PIDL Custom Build 를 설정해 주세요.
빌드 설정의 각 세부 내용은 다음과 같습니다
명령줄: <PIDL.exe가 있는 경로>\PIDL.exe "%(FullPath)" -outdir .
설명: Compiling %(Filename).pidl ...
출력: %(RootDir)%(Directory)%(Filename)_common.cpp;%(RootDir)%(Directory)%(Filename)_common.h;%(RootDir)%(Directory)%(Filename)_proxy.cpp;%(RootDir)%(Directory)%(Filename)_proxy.h;%(RootDir)%(Directory)%(Filename)_stub.cpp;%(RootDir)%(Directory)%(Filename)_stub.h;%(Outputs)
추가 종속성: <PIDL.exe가 있는 경로>\PIDL.exe
PIDL.exe 는 ProudNet 설치 경로의 util 폴더에 있습니다.
Debug, Release 모두 동일하게 설정해야 합니다.
설정이 모두 끝났으면 PIDL 파일을 컴파일하여 아래와 같이 출력되는 것을 확인하실 수 있습니다.
Ubuntu에서 오픈소스 Mono 라이브러리 설치 예제 ※ 오픈소스 Mono 프로젝트는 리눅스, 윈도우, Mac OS 모두 지원합니다.
C# 언어에서도 RMI를 사용할 수 있어, 이를 위해 PIDL 컴파일러도 C# 언어의 proxy와 stub 코드를 생성합니다.
다음과 같이 실행하면 C# 언어의 proxy와 stub 코드가 생성됩니다. (기존 -clr은 -cs와 동일합니다.)
C# 언어로 만들어지는 proxy와 stub은 공통으로 쓰는 모듈로 사용하는 것이 좋습니다. 이 모듈에는 PIDL 에서와 마찬가지로 C# 프로젝트에서도 PIDL 파일을 입력받아 커스텀 빌드를 해줄 필요가 있습니다.
C2S.pidl을 빌드 후 생성되는 proxy,stub은 다음과 같습니다.
C2S_common.cs
C2S_proxy.cs
C2S_stub.cs
이들 파일을 C# 프로젝트(.csproj)에 포함 시킵니다. 단, 이 파일들은 빌드 결과물이며 읽기 전용 파일에 쓰기 오류가 날 수 있으니, 소스 컨트롤(가령 SVN 등)에는 넣지 말아야 합니다.
.csproj 파일을 편집기로 열어 다음과 같이 수정하는 것을 권장합니다.
PIDL 컴파일러가 생성하는 proxy, stub, common 클래스의 엑세스 한정자는 기본적으로 internal이 설정됩니다. 이들 클래스는 같은 모듈(혹은 어셈블리) 내에 다른 소스에서 사용될 수 있지만 다른 모듈에서는 사용될 수 없습니다.
하지만 이 클래스들을 모아 놓은 모듈을 따로 빌드하고, 이 모듈에 있는 클래스들을 다른 모듈에서도 사용하고자 할 때, 엑세스 한정자를 public으로 바꾸고 싶으실 수 있습니다.
이러한 경우 PIDL 컴파일러가 생성하는 클래스의 엑세스 한정자 속성을 다음과 같이 설정하세요.
Visual Studio 2005, 2008 버전은 가 지원되어 PIDL 파일을 추가할 때마다 커스텀빌드 설정을 해주지 않아도 자동으로 설정됩니다. Visaul Studio 2010 이후 버전은 Build customizations 를 사용할 수 있습니다.