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
  • ์ƒ์„ฑ ๋ฐ ์…‹ํŒ…
  • PIDL ๋ฌธ๋ฒ•
  • ์ƒ์„ฑ๋œ Proxy & Stub ํŒŒ์ผ ์‚ฌ์šฉ๋ฒ•
  • - ํด๋ผ์ด์–ธํŠธ,์„œ๋ฒ„์— Proxy ๋ถ™์ด๊ธฐ
  • - ํด๋ผ์ด์–ธํŠธ,์„œ๋ฒ„์— Stub ๋ถ™์ด๊ธฐ
  • - ๋งคํฌ๋กœ ์‚ฌ์šฉ ์ˆœ์„œ
  • - ํ†ต์‹ ์„ ์œ„ํ•œ Option Class
  • ํ™œ์šฉ

Was this helpful?

  1. ProudNet ํ”„๋ผ์šฐ๋“œ๋„ท
  2. ProudNet ์‚ฌ์šฉํ•˜๊ธฐ

PIDL

์ƒ์„ฑ ๋ฐ ์…‹ํŒ…

ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. Visual Studio์—์„œ txt ํŒŒ์ผ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ํ™•์žฅ์ž๋ฅผ PIDL๋กœ ๋ฐ”๊พผ ํ›„ ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ์„ธํŒ…์„ ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ™•์žฅ์ž๊ฐ€ PIDL์ธ ํŒŒ์ผ๋“ค์€ Custom Build ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Visual Studio ์†”๋ฃจ์…˜ Viewer

  2. ์ƒ์„ฑํ•œ PIDL ํŒŒ์ผ ์šฐ ํด๋ฆญ

  3. ์†์„ฑ -> General -> Item Type: Custom Build Tool

PIDL ๋ฌธ๋ฒ•

PIDL์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

global (namespace) 
         (๋ฉ”์‹œ์ง€์˜ ID ์ฒซ ์‹œ์ž‘ ๊ฐ’) 
{ 
     ํ•จ์ˆ˜ ์„ ์–ธ([in] ํ•จ์ˆ˜ Parameter, โ€ฆ) 
}

์ปดํŒŒ์ผ์„ ํ•˜๊ฒŒ ๋˜๋ฉด namespace๋ฅผ ์ƒ์„ฑ ํ›„, Stub๊ณผ Proxy Class๋Š” ์ด namespace ์•ˆ์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  RMIํ•จ์ˆ˜๋“ค์€ ๊ณ ์œ ID๋ฅผ ๊ฐ–๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๊ฐ’์€ โ€˜๋ฉ”์‹œ์ง€์˜ ID ์ฒซ ์‹œ์ž‘ ๊ฐ’โ€™ ์œผ๋กœ๋ถ€ํ„ฐ +1์”ฉ ์ถ”๊ฐ€๋˜์–ด ID๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, 0 ~ 1,300 ์‚ฌ์ด์˜ ID์™€ 63,000 ์ดํ›„์˜ ID๋Š” ProudNet ๋‚ด๋ถ€ ๋ฉ”์‹œ์ง€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์™ธ์˜ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

// C#์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ˜•์‹ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋“ค์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
rename cs(Proud::String, System.String);

global S2C 1000 
{
     // Protocol์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
    Chat([in] Proud::String txt);
}

์ƒ์„ฑ๋œ Proxy & Stub ํŒŒ์ผ ์‚ฌ์šฉ๋ฒ•

PIDL์„ ์‹คํ–‰ํ•˜์‹œ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ 6๊ฐœ์˜ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • PIDLํŒŒ์ผ๋ช…_common.Cpp

  • PIDLํŒŒ์ผ๋ช…_common.h

  • PIDLํŒŒ์ผ๋ช…_proxy.Cpp

  • PIDLํŒŒ์ผ๋ช…_proxy.h

  • PIDLํŒŒ์ผ๋ช…_stub.Cpp

  • PIDLํŒŒ์ผ๋ช…_stub.h

C#์˜ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ 3๊ฐœ์˜ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • PIDLํŒŒ์ผ๋ช…_common.cs

  • PIDLํŒŒ์ผ๋ช…_proxy.cs

  • PIDLํŒŒ์ผ๋ช…_stub.cs

common ํŒŒ์ผ์„ ์ œ์™ธํ•œ ๊ฐ๊ฐ hํŒŒ์ผ์€ header์—, cppํŒŒ์ผ์€ cppํŒŒ์ผ์— #include ํ•ด์ฃผ๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. .hํŒŒ์ผ๊ณผ .cpp ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ์— ํฌํ•จ์‹œ์ผœ๋„ ๋˜์ง€๋งŒ, Custom Build ์‚ฌ์šฉ์œผ๋กœ ์ธํ•˜์—ฌ ํŒŒ์ผ ๋ณ€๊ฒฝ์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋ฏ€๋กœ ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ RMI ํ•จ์ˆ˜์—๋Š” ์ •์˜ํ•œ ๋ณ€์ˆ˜ ์™ธ์— ๋‘ ๊ฐ€์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

- ํด๋ผ์ด์–ธํŠธ,์„œ๋ฒ„์— Proxy ๋ถ™์ด๊ธฐ

PIDL ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋ฌผ์˜ Proxy ์ธ์Šคํ„ด์Šค๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•œ ํ›„ ์ธ์Šคํ„ด์Šค๋ฅผ Proud.CNetClient ๋‚˜ Proud.CNetServer์— ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” Proud.IRmiHost ๋ฅผ ์ƒ์†๋ฐ›์•˜์œผ๋ฉฐ, ์—ฌ๊ธฐ์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ AttachProxy ๋ฅผ ํ†ตํ•ด proxy๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„ ๊ฐ๊ฐ์€ Proxy๋Š” ๋‘๊ฐœ ์ด์ƒ์„ ๋ถ™์—ฌ๋„ ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ๋ฉ”์‹œ์ง€ ID์˜ ๋ฒ”์œ„๊ฐ€ ๊ฒน์น˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

C#์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ NetServer์™€ NetClient์— ์žˆ๋Š” AttachProxy ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, TestA.Proxy๊ฐ€ ์žˆ๊ณ  TestB.Proxy๋ฅผ ํ•œ ๊ฐœ์˜ CNetClient์— ๋ถ™์ธ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„๋•Œ, ๋งŒ์•ฝ TestA์˜ ์ฒซ ๋ฉ”์‹œ์ง€ ID๋ฅผ 2,100์œผ๋กœ, TestB์˜ ์ฒซ ๋ฉ”์‹œ์ง€ ID๋ฅผ 2,200์œผ๋กœ ์„ ์–ธํ–ˆ๋‹ค๋ฉด, TestA์— ์„ ์–ธ๋œ RMI ํ•จ์ˆ˜์˜ ๊ฐฏ์ˆ˜๊ฐ€ 200๊ฐœ์ธ ๊ฒฝ์šฐ TestA์— ๋ฐฐ์ •๋˜๋Š” ๋ฉ”์‹œ์ง€ ID๋Š” 2,100~2,300์ด ๋˜์–ดTestB์˜ ๋ฉ”์‹œ์ง€ ID๊ฐ€ ๊ฒน์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ถ™์ด๋Š” Proxy์˜ ๋ฉ”์‹œ์ง€ ID๊ฐ€ ๊ฒน์น˜๊ฒŒ ๋  ๊ฒฝ์šฐ ์˜ˆ์™ธ๊ฐ€ throw๋ฉ๋‹ˆ๋‹ค.

- ํด๋ผ์ด์–ธํŠธ,์„œ๋ฒ„์— Stub ๋ถ™์ด๊ธฐ

// C++11 ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
<exam.pidl>
Func1([in] int a, [in] string b);
 
<exam.cpp>
class Exam
{
    int x = 1;
 
    Exam::StubFunction examStub;
 
    void Main()
    {
        int y = 3;
        // PARAM_Exam_Func1์€ Exam_stub.h์— ์ •์˜๋˜์–ด ์žˆ๋Š” define ์ž…๋‹ˆ๋‹ค.
        examStub.Func1_Function = [this, y]PARAM_Exam_Func1 {
            x += a;
            y += a;
            return true;
        };
    }
};
<exam.pidl>
Func1([in] int a, [in] string b);
 
<exam.cs>
class Exam
{
    int x = 1;
 
    Exam.Stub examStub = new Exam.Stub();
 
    void Main()
    {
        int y = 3;
        
        examStub.Func1 = (a, b) => {
            x += a;
            y += a;
            
            return true;
        };
    }
}

PIDL ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋ฌผ์˜ Stub ์ธ์Šคํ„ด์Šค๋Š” ๋„คํŠธ์›Œํฌ๋กœ ์ˆ˜์‹ ๋œ ๋ฉ”์‹œ์ง€์— ์˜ํ•ด ์‹คํ–‰๋  RMI ํ•จ์ˆ˜๋“ค์„ virtual function์œผ๋กœ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์‹œ์—๋Š” ์ด Stub ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ RMI ํ•จ์ˆ˜๋“ค์„ ์˜ค๋ฒ„๋ผ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

C#์˜ ๊ฒฝ์šฐ๋Š” ๋”ฐ๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œ ์—†์ด ๋ฐ”๋กœ Stub ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

C++์˜ ๊ฒฝ์šฐ PIDL ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฐœ๋ฐœ์ž์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด RMI ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํฌ์žฅ๋œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋งคํฌ๋กœ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

#define DECRMI_S2C_ShowChat bool ShowChat(Proud::HostID remote,Proud::RmiContext &rmiContext,const CString &a,const int &b,const float &c)
#define DEFRMI_S2C_ShowChat(DerivedClass) bool DerivedClass::ShowChat(Proud::HostID remote,Proud::RmiContext &rmiContext,const CString &a,const int &b,const float &c)

- ๋งคํฌ๋กœ ์‚ฌ์šฉ ์ˆœ์„œ

// ๋งคํฌ๋กœ ์‚ฌ์šฉ ์ˆœ์„œ
// 1. ์ƒ์†๋œ Stub ํด๋ž˜์Šค์˜ class ์„ ์–ธ์—์„œ DECRMI_๋„ค์ž„์ŠคํŽ˜์ด์Šค_๋ฉ”์„œ๋“œ ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
// 2. ์ƒ์†๋œ Stub ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ์ •์˜์—์„œ DEFRMI_๋„ค์ž„์ŠคํŽ˜์ด์Šค_๋ฉ”์„œ๋“œ ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

// ์‚ฌ์šฉ ์˜ˆ์‹œ

// PIDL ํŒŒ์ผ ๋‚ด์šฉ
global LobbyC2S 5000
{
    Foo([in] int a,[in] float b);
}
 
// LobbyC2S์˜ Stub์„ ์ƒ์†๋ฐ›์•„ RMI๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค
class LobbyC2SStub:public LobbyC2S::Stub
{
    DECRMI_LobbyC2S_Foo;
};
 
// LobbyC2S์˜ RMI Foo์˜ ๋ฃจํ‹ด ๊ตฌํ˜„
DEFRMI_LobbyC2S_Foo(LobbyC2SStub)
{
    // ์—ฌ๊ธฐ์—์„œ ์ฃผ์–ด์ง€๋Š” ํŒŒ๋ผ๋ฉ”ํ„ฐ๋Š” PIDL ์˜ LobbyC2S.Foo ์˜ ํŒŒ๋ผ๋ฉ”ํ„ฐ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
    a++;
    b++;
 
    return true;
}

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” Proud.IRmiHost๋ฅผ ์ƒ์† ๋ฐ›์•˜์œผ๋ฉฐ, ์—ฌ๊ธฐ์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ Proud.IRmiHost.AttachStub ์„ ํ†ตํ•ด stub์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Proxy์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฉ”์‹œ์ง€ ID๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๋Š” ์กฐ๊ฑด ํ•˜์— 2๊ฐœ ์ด์ƒ์˜ Stub์„ ๋ถ™์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ํ†ต์‹ ์„ ์œ„ํ•œ Option Class

๋‚ด๋ถ€ Static์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

C++
C#
์„ค๋ช…

Proud::HostID

Nettention.Proud.HostID

ํ†ต์‹ ํ•˜๊ณ ์ž ํ•˜๋Š” ์ƒ๋Œ€ Host์˜ ID๊ฐ’

Proud::RmiContext

Nettention.Proud.RmiContext

๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๊ธฐ ์œ„ํ•œ ์˜ต์…˜

Reliable / Unreliable ํ†ต์‹ ๋ช…
์„ค๋ช…

ReliableSend

Reliable ํ†ต์‹ 

FastEncryptedReliableSend

๋น ๋ฅธ ์•”ํ˜ธํ™” ๋ฐฉ์‹(๋ณด์•ˆ์„ฑ์ด ๋‚ฎ์€)์„ ์‚ฌ์šฉํ•˜๋Š” Reliableํ†ต์‹ 

SecureReliableSend

์•”ํ˜ธํ™”๋œ Reliableํ†ต์‹ 

UnreliableSend

Unreliable ํ†ต์‹ 

FastEncryptedUnreliableSend

๋น ๋ฅธ ์•”ํ˜ธํ™” ๋ฐฉ์‹(๋ณด์•ˆ์„ฑ์ด ๋‚ฎ์€)์„ ์‚ฌ์šฉํ•˜๋Š” Unreliable ํ†ต์‹ 

SecureUnreliableSend

์•”ํ˜ธํ™”๋œ Unreliable ํ†ต์‹ 

๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” Option ์€ Static์œผ๋กœ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ํŽธ์˜์— ๋”ฐ๋ผ ์ง์ ‘ ์ƒ์„ฑํ•˜์—ฌ ์›ํ•˜์‹œ๋Š” Option์„ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

m_reliability: Reliable & Unreliable ํ†ต์‹  ๋ฐฉ์‹ ์„ ํƒ m_encryptMode: ์•”ํ˜ธํ™” ์—ฌ๋ถ€(์†๋„์™€ ๋ณด์•ˆ์„ฑ์— ๋”ฐ๋ผ ์„ธ๊ฐ€์ง€ Option ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.) m_compressMode: ์••์ถ• ์—ฌ๋ถ€

C#์˜ ๊ฒฝ์šฐ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์ •์˜๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


ํ™œ์šฉ

Last updated 1 year ago

Was this helpful?

๐ŸŒ
PIDL ํ™œ์šฉ๋ฒ•