Level : WORDPRESS BOOK LINKEDIN PATENT Send Mail 동냥하기 hajunho.com

반응형
// Copyright Epic Games, Inc. All Rights Reserved.

using System.IO;
using UnrealBuildTool;

[SupportedPlatformGroups("Windows")]
public class WindowsPlatformFeatures : ModuleRules
{
    public WindowsPlatformFeatures(ReadOnlyTargetRules Target) : base(Target)
    {
       // NOTE: General rule is not to access the private folder of another module,
       // but to use the ISubmixBufferListener interface, we  need to include some private headers
       PrivateIncludePaths.Add(System.IO.Path.Combine(Directory.GetCurrentDirectory(), "./Runtime/AudioMixer/Private"));

       PrivateDependencyModuleNames.AddRange(
          new string[]
          {
             "ApplicationCore",
             "Core",
             "CoreUObject",
             "Engine",
             "AudioMixer",
             "AVEncoder",
             "GameplayMediaEncoder",
          }
       );

        PublicDelayLoadDLLs.Add("mfplat.dll");
        PublicDelayLoadDLLs.Add("mfuuid.dll");
        PublicDelayLoadDLLs.Add("Mfreadwrite.dll");

    }
}

 

이 코드는 `WindowsPlatformFeatures`라는 Unreal Engine 모듈에 대한 빌드 스크립트를 정의하고 있습니다. 역시 UnrealBuildTool을 사용하여 종속성과 컴파일 규칙을 정의하고 있습니다. 자세히 분석해 보겠습니다.

### 코드 구성 요소

1. **네임스페이스와 클래스 선언**
   ```csharp
   using System.IO;
   using UnrealBuildTool;

   [SupportedPlatformGroups("Windows")]
   public class WindowsPlatformFeatures : ModuleRules
   {
       public WindowsPlatformFeatures(ReadOnlyTargetRules Target) : base(Target)
       {
   ```

   - `System.IO`와 `UnrealBuildTool` 네임스페이스를 가져옵니다.
   - `WindowsPlatformFeatures` 클래스는 `ModuleRules`를 상속받아 정의되며, 빌드 규칙을 설정합니다.
   - `[SupportedPlatformGroups("Windows")]` 속성은 이 모듈이 Windows 플랫폼 그룹을 지원함을 나타냅니다.
   - 생성자는 `ReadOnlyTargetRules Target`을 매개변수로 받아 빌드 규칙을 설정합니다.

2. **프라이빗 포함 경로 설정**
   ```csharp
       // NOTE: General rule is not to access the private folder of another module,
       // but to use the ISubmixBufferListener interface, we need to include some private headers
       PrivateIncludePaths.Add(Systehttp://m.IO.Path.Combine(Directory.GetCurrentDirectory(), "./Runtime/AudioMixer/Private"));
   ```

   - 일반적으로 다른 모듈의 프라이빗 폴더에 접근해서는 안 되지만, `ISubmixBufferListener` 인터페이스 사용을 위해 특정 프라이빗 헤더를 포함합니다.
   - `PrivateIncludePaths`에 `./Runtime/AudioMixer/Private` 경로를 추가합니다. 여기서 `Systehttp://m.IO.Path.Combine`을 이용해 경로를 결합합니다.

3. **프라이빗 종속 모듈 설정**
   ```csharp
       PrivateDependencyModuleNames.AddRange(
           new string[]
           {
               "ApplicationCore",
               "Core",
               "CoreUObject",
               "Engine",
               "AudioMixer",
               "AVEncoder",
               "GameplayMediaEncoder",
           }
       );
   ```

   - `PrivateDependencyModuleNames` 배열에 여러 모듈들을 추가합니다. 이들 모듈들은 'WindowsPlatformFeatures' 모듈이 필요로 하는 필수적인 종속 모듈들입니다.
   - 여기에는 "ApplicationCore", "Core", "CoreUObject", "Engine", "AudioMixer", "AVEncoder", "GameplayMediaEncoder" 모듈들이 포함됩니다.

4. **DLL 지연 로드 설정**
   ```csharp
       PublicDelayLoadDLLs.Add("mfplat.dll");
       PublicDelayLoadDLLs.Add("mfuuid.dll");
       PublicDelayLoadDLLs.Add("Mfreadwrite.dll");
   ```

   - `PublicDelayLoadDLLs`는 모듈이 지연 로드는 DLL 파일들을 지정합니다.
   - `mfplat.dll`, `mfuuid.dll`, `Mfreadwrite.dll` 등 멀티미디어 관련 DLL 파일들이 추가되고, 이는 DLL이 필요할 때 로드됨을 의미합니다.

### 종합 분석

- **프라이빗 포함 경로:** 다른 모듈의 프라이빗 헤더를 포함하기 위한 예외적인 경로 설정이 주요 특징입니다.
- **프라이빗 종속 모듈:** 여러 핵심 모듈에 대한 필수 종속성이 정의되어 있으며, 이 모듈이 Windows 플랫폼 기능을 다루는 데 있어서 중요한 역할을 할 수 있음을 나타냅니다.
- **DLL 지연 로드:** 특정 DLL 파일들이 필요할 때 로드될 수 있도록 설정되어 있으며, 이는 대부분 멀티미디어 처리와 관련되어 있습니다.

이 스크립트는 Windows 플랫폼에서 작동하는 `WindowsPlatformFeatures` 모듈의 빌드 규칙을 잘 정의하고 있으며, 높은 의존성을 가진 모듈들과 함께 동작하도록 설정되어 있습니다.

 


node.js source works properly in iOS

var util = require("util"),

my_http = require("http");

my_http.createServer(function(request,response){

  console.log("connected")

  response.writeHeader(200, {"Content-Type": "text/plain"});

  response.write("Hello World");

  response.end();

}).listen(3000);

console.log("Server Running on 3000"); 

 

Info.Plist 에서 http 허용

 

    <key>NSAppTransportSecurity</key>

    <dict>

        <key>NSAllowsArbitraryLoads</key>

        <true/>

    </dict>

 

 

반응형

'3D world > Unreal Engine Plug-ins' 카테고리의 다른 글

NDI  (0) 2019.09.12
unreal + rider  (0) 2019.03.13
D3D11RHI  (0) 2019.03.13
AudioMixerXAudio2  (0) 2019.01.22
메신저 서비스를 할 때 고려해야 할 점.  (0) 2019.01.07
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기