ProudNet Docs
WebsiteProud ConsoleLanguage
  • 🌐ProudNet 프라우드넷
    • ProudNet 소개
    • 다운로드 및 설치
      • ProudNet 라이센스 인증 방법
      • AMI
    • 프로젝트 설정
      • C++
      • C#
      • Mac Xcode
      • Linux
      • Unity3D
        • iOS 빌드
      • Unreal Engine 4
      • PIDL 컴파일러 실행
    • ProudNet 사용하기
      • 서버와 클라이언트
        • 서버 활용법
        • 클라이언트 활용법
      • RMI
        • RMI 활용법
      • PIDL
        • PIDL 활용법
      • 이벤트 핸들링
      • 통신 메시지
      • P2P 통신
        • P2P 통신 활용법
    • ProudNet 활용하기
      • 활용 방법
      • 성능을 위한 팁
    • ProudNet에서 DB 사용하기
      • DB Cache System ver.2
        • DB Cache 이론 및 이해
        • DB Cache 설치 및 네트워크 설정
        • DB Cache 서버와 클라이언트
        • DB Cache 사용 및 활용
          • DB Cache 활용법
      • ADO API
      • ODBC API
    • ProudNet 유틸리티
  • ProudNet 참고자료
    • 기술노트
      • 메인 루프의 이해
      • 서버 방화벽 설정
      • 암호화 및 복호화
      • 에러발생 시 대처사항
      • 에러 메시지 목록
      • 캐릭터 위치 동기화
      • 클라이언트-서버 통신
      • MiniDump (오류덤프시스템)
      • [1.6 버전] 서버 간 LAN 통신기
    • 용어집
    • Sample 예제
  • 🌐프라우드 서비스
    • 콘솔 이용 안내
    • ProudChat
      • SDK 다운로드
        • C++
        • C#
        • Unity3D
        • Unreal Engine 4
      • 서비스 기능
Powered by GitBook
On this page
  • 1. Windows
  • 2. Linux
  • 3. C#
  • - RMI proxy, stub 클래스의 public, internal, private 설정

Was this helpful?

  1. ProudNet 프라우드넷
  2. 프로젝트 설정

PIDL 컴파일러 실행

Last updated 1 year ago

Was this helpful?

1. Windows

을 이용하시면 편리하게 PIDL 파일 작성 및 컴파일이 가능하지만 사용할 수 없다면, 아래의 방법으로 PIDL Custom Build 를 설정해 주세요.

1-1. Visual Studio 프로젝트에서 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 파일을 컴파일하여 아래와 같이 출력되는 것을 확인하실 수 있습니다.

1>---— 빌드 시작: 프로젝트: ..., 구성: Release Win32 ---—
1>Compiling TestC2C.pidl ...
1>빌드 로그가 "..."에 저장되었습니다.
1>ProudNetTest_2005 - 오류: 0개, 경고: 0개
========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========


2. Linux

Ubuntu에서 오픈소스 Mono 라이브러리 설치 예제 ※ 오픈소스 Mono 프로젝트는 리눅스, 윈도우, Mac OS 모두 지원합니다.

$sudo apt-get install mono-gmcs
$sudo apt-get install mono-runtime

CentOS에서 오픈소스 Mono 라이브러리 설치 예제 ※ 오픈소스 Mono 프로젝트는 리눅스, 윈도우, Mac OS 모두 지원합니다.

$sudo yum install mono-devel
$sudo yum install mono-complete

Mono 플랫폼에서 PIDL 컴파일러 실행 예제

$pwd
/home/ProudNet/util
$mono PIDL.exe ../Sample/Simple/Common/*.pidl -outdir ./


3. C#

C# 언어에서도 RMI를 사용할 수 있어, 이를 위해 PIDL 컴파일러도 C# 언어의 proxy와 stub 코드를 생성합니다.

다음과 같이 실행하면 C# 언어의 proxy와 stub 코드가 생성됩니다. (기존 -clr은 -cs와 동일합니다.)

PIDL.exe -cs <input-file-name>

C# 언어로 만들어지는 proxy와 stub은 공통으로 쓰는 모듈로 사용하는 것이 좋습니다. 이 모듈에는 PIDL 에서와 마찬가지로 C# 프로젝트에서도 PIDL 파일을 입력받아 커스텀 빌드를 해줄 필요가 있습니다.

C2S.pidl을 빌드 후 생성되는 proxy,stub은 다음과 같습니다.

  • C2S_common.cs

  • C2S_proxy.cs

  • C2S_stub.cs

이들 파일을 C# 프로젝트(.csproj)에 포함 시킵니다. 단, 이 파일들은 빌드 결과물이며 읽기 전용 파일에 쓰기 오류가 날 수 있으니, 소스 컨트롤(가령 SVN 등)에는 넣지 말아야 합니다.

.csproj 파일을 편집기로 열어 다음과 같이 수정하는 것을 권장합니다.

<Target Name="BeforeBuild">
<ItemGroup>
<Compile Include="C2S_common.cs" />
<Compile Include="C2S_proxy.cs" />
<Compile Include="C2S_stub.cs" />
</ItemGroup>
 
</Target>
<Target Name="AfterBuild">
</Target>

C# 언어로 생성된 proxy와 stub은 C++ 에서 똑같은 이름을 가진 클래스이며, 사용법 또한 동일합니다.

- RMI proxy, stub 클래스의 public, internal, private 설정

PIDL 컴파일러가 생성하는 proxy, stub, common 클래스의 엑세스 한정자는 기본적으로 internal이 설정됩니다. 이들 클래스는 같은 모듈(혹은 어셈블리) 내에 다른 소스에서 사용될 수 있지만 다른 모듈에서는 사용될 수 없습니다.

하지만 이 클래스들을 모아 놓은 모듈을 따로 빌드하고, 이 모듈에 있는 클래스들을 다른 모듈에서도 사용하고자 할 때, 엑세스 한정자를 public으로 바꾸고 싶으실 수 있습니다.

이러한 경우 PIDL 컴파일러가 생성하는 클래스의 엑세스 한정자 속성을 다음과 같이 설정하세요.

// This will let proxy, stub and common classes to have access modifier 'public'.
[marshaler(clr)=MyMarshaler, access=public]
global MyC2S 3000
{
    Foo(...);
}

Visual Studio 2005, 2008 버전은 가 지원되어 PIDL 파일을 추가할 때마다 커스텀빌드 설정을 해주지 않아도 자동으로 설정됩니다. Visaul Studio 2010 이후 버전은 Build customizations 를 사용할 수 있습니다.

🌐
C# 프로젝트에서 PIDL 파일을 위한 커스텀 빌드 설정하기
PIDL애드온
Custom Build Rules