Files
UnrealEngineUWP/Engine/Documentation/Source/Programming/Modules/API/ModuleAPI.JPN.udn
Ben Marsh 49831a5631 Include documentation source in repository.
[CL 2489162 by Ben Marsh in Main branch]
2015-03-24 08:35:52 -04:00

22 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Availability:Public
Title: モジュール API 指定子
Crumbs:%ROOT%, Programming
Description:クラスと関数を他のモジュールに公開します。
こうした指定子について最も簡単な考え方は、モジュールのダイナミック リンクライブラリ (Dynamic Link Library、DLL) ファイルに「パブリック」として関数、クラス、データをタグ付けするために使用されるということです。Engine モジュールでENGINE_API として関数をマークすると、Engine をインポートするどのモジュールでもその関数に直接アクセスすることができます。
これらは、エンジンを「モジュール」モードでコンパイルする場合のみ使用されます (DLL ファイルがデスクトップのプラットフォーム上にある) 。この逆としては、「モリシック」モードがあります。これは、すべてのコードをひとつの実行ファイルにまとめます。ビルドのタイプは、UnrealBuildTool の設定と (または) プラットフォーム、およびビルド設定によって制御されます。
実際の API マクロは、コードがUBT によってどのようにコンパイルされるかによって以下のいずれかと等しくなります。
* __declspec( dllexport )、「モジュール」モードでモジュール コードをコンパイルする場合。
* __declspec( dllimport ) 、インポートするモジュールにパブリック モジュールのヘッダを含む場合。
* 空、「モノリシック」モードでコンパイルする場合。
他のモジュールから静的にインポートしたモジュールに対してのみ API マクロは意味があります。Core モジュールは良い例です。UE4 の他のほとんどすべてのモジュールが、*.Build.cs ファイルでのインポート依存関係として「Core」を指定します。
モジュールの多くは、静的にインポートする必要はありません。 (例、SceneOutline モジュール) こうしたモジュールは、動的にロードされたモジュールといいます。動的にロードされたモジュールは非常に素晴らしいものです。スタートアップ時に (プラグインのように) 見つけることができ、多くの場合、ただちに再ロードできるからです。
API マクロは古いコードでほとんど使用され、新しいモジュールがその DLL からアクセスできるようにします。新しいコードでは、API マクロの使用ははるかに少なく、かわりに DLLの境界を超えて機能を公開する優れたインターフェイス レイヤーをセットアップします。