.DEF

DEF ファイル

Module-Definition File
質問する
クイック回答

DEF ファイルは、プレーンテキストのリンカー指示ファイルです。最も一般的なのは、DLL が公開すべき関数を Windows リンカーに伝える EXPORTS リストです。VS Code や Notepad++ などのテキストエディタで開くことができます。これは /DEF:name.def としてリンカーに渡されるビルド入力であり、実行するプログラムではありません。

開発元: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) カテゴリ: 開発用ファイル MIME: text/plain
対応OS Windows macOS Linux
関連: .DO · .MD · .HEX · .XSD

このページの内容

19k+ 個の拡張子を索引済み
最終確認日:Jul 13, 2026

ファイルの種類がわかりませんか?

ファイルを識別ツールにドロップしてください。最初の数バイトを読み取って形式を特定します。

ファイルを識別する

DEF ファイル形式とは?

.def ファイルは Windows および OS/2 の開発環境に関連付けられており、C、C++、およびその他のコンパイル言語と共に使用されます。

.def 拡張子を持つファイルは、プレーンテキスト形式でデータを保存します。.def ファイルはモジュール定義ファイルと呼ばれることもあり、DLL ライブラリの生成に使用されます。.def ファイルには、リンカー指示の特別なセット(LIBRARYEXPORTSIMPORTSSECTIONSHEAPSIZESTACKSIZE などのステートメント)が格納されており、これらを使用して、呼び出し元に公開される関数やデータシンボル、およびそれらが持つ序数(オーディナル番号)を含む DLL ライブラリの主要な側面を定義します。

このファイルは、ビルド時に /DEF:name.def スイッチ(MSVC)または MinGW/GCC や LLVM lld-link の同等のフラグを使用してリンカーに渡されます。これはビルド入力であり、コンパイルされた成果物ではありません。結果として生成されるバイナリは .dll または .exe です。

DLL は、実行可能コードとその他の関連データを格納するライブラリファイルです。DLL ファイルは再利用可能であり、複数のアプリケーションから同時にアクセスでき、必要に応じて動的にロードされます。また、DLL ファイルはその動的な性質により、ディスク容量と動作メモリを節約する手段でもあります。DLL ファイルが複数のアプリケーション間で共有されるため、ソフトウェアの更新も容易になります。

現代の C/C++ コンパイラでは、開発者が __declspec(dllexport) を使用してソースコード内でエクスポートシンボルを直接マークできるため、個別の .def ファイルの必要性は大幅に減少しました。しかし、.def ファイルは現在の MSVC リンカー(link.exe)や LLVM lld-link でも引き続きサポートされており、安定した、明示的に順序付けられたエクスポートテーブルが必要な場合には依然として好まれます。

セキュリティと安全性

リスク: LOW

モジュール定義 .def は小さなプレーンテキストのビルドファイルであり、開いて読む分には安全です。実行することはできません。唯一の実質的なリスクは、実際のプロジェクトで編集することです。EXPORTS エントリを変更または削除すると、DLL のパブリックインターフェイスが変更され、呼び出し元が壊れたりエクスポート序数が変わったりする可能性があるため、編集前に ABI への影響を理解してください。他のソースファイルと同様に、自分が管理しているプロジェクトソースの .def ファイルのみを信頼してください。

形式の詳細

概要
正式名称Module-Definition File別名 Module Definition File, DEF file
開発元Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)登場時期 Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
MIME タイプtext/plain
タイププレーンテキスト・リンカー指示ファイル(ステートメント: LIBRARY, EXPORTS, IMPORTS...)
この拡張子は以下でも使用されています…
  • Tibia / OTClient マップファイル (.def) - 一部のゲームツールや Tibia マップエディタは、マップ/スポーン定義に .def を使用していましたが、リンカーとは無関係です。
  • ESRI ArcView / SmartWare データ定義 - 古いデータベースおよび GIS ツール(SmartWare、ArcView、DataFlex)は、独自の .def スキーマ/定義ファイルを書き出していました。
  • AniSprite アニメーション定義 / Oberon-2 & Modula-2 DEFINITION モジュール - AniSprite はスプライトアニメーション定義を .def に保存していました。Modula-2/Oberon はモジュールのパブリックインターフェイスに .def を使用します。

DEF ファイルを開くプログラム

Windows4 apps
Windows Notepad 標準搭載 小さな .def ファイルを素早く確認するために «メモ帳» で開きます。構文ヘルプはありません。
Notepad オープンソース 右クリック > «Notepad++ で編集» を選択して、行番号付きでリンカー指示を表示/編集します。
Visual Studio Code 無料 EXPORTS リストをプレーンテキストとして読み取り/編集するために .def を開きます。無料の汎用的な選択肢として最適です。
Visual Studio (MSVC) フリーミアム .def をプロジェクトに追加し、「リンカー > 入力 > モジュール定義ファイル (/DEF)」を介して渡します。Visual Studio は編集用にテキストとして開くこともできます。
macOS1 app
Visual Studio Code 無料 EXPORTS リストをプレーンテキストとして読み取り/編集するために .def を開きます。無料の汎用的な選択肢として最適です。
Linux2 apps
nano / vim オープンソース Windows DLL をクロスビルドする際にターミナルで編集します(MinGW-w64/LLVM は -Wl,--def または /DEF を介して .def を処理します)。
Visual Studio Code 無料 EXPORTS リストをプレーンテキストとして読み取り/編集するために .def を開きます。無料の汎用的な選択肢として最適です。

技術的詳細

詳細仕様
フォーマットタイププレーンテキスト・リンカー指示ファイル
MIME タイプtext/plain
文字エンコーディングASCII / ANSI; BOM なしの UTF-8 が一般的
ファイルシグネチャ (マジックバイト)なし - 行の先頭にある LIBRARY、EXPORTS、NAME などのキーワードによって識別されます
一般的なファイルサイズ1 KB 未満から数 KB(1 行につき 1 つのエクスポートシンボル)
主要なステートメント: LIBRARY / NAMEDLL の内部ヘッダーに埋め込まれるモジュール名を宣言します
主要なステートメント: EXPORTS公開する各シンボルをリストし、オプションで序数 (@N)、NONAME、および DATA フラグを指定します
追加のステートメントIMPORTS、SECTIONS(セクション属性の設定)、HEAPSIZE、STACKSIZE
リンカースイッチ (MSVC)ビルド時に link.exe に渡される /DEF:filename.def
サポートされているツールチェーンMSVC link.exe, MinGW/GCC ld, LLVM lld-link, Watcom linker, Digital Mars linker
出力成果物.dll のエクスポートテーブルと、それと共に生成されるインポートライブラリ (.lib) を制御します
関連するオペレーティングシステムWindows(主要)、OS/2(レガシー)、16ビット DOS(レガシー)
現代の代替手段ソースコード内の __declspec(dllexport)。ただし、安定したエクスポート序数やツールチェーンの移植性のために依然として .def が好まれます
レガシー 16ビット キーワード16ビット Windows/OS/2 の DEF ファイルに存在する CODE および DATA セグメント属性ステートメント。Win32 では廃止
圧縮と暗号化なし - 常に非圧縮、非暗号化のプレーンテキストとして保存されます
リリース日Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
最新バージョンSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
仕様書learn.microsoft.com

DEF の変換

コミュニティ Q&A

ユーザーからの質問
質問する
DEF ファイルを扱うユーザーからヘルプを得られます。OSやソフトウェアのバージョンなど、具体的に記載してください。
アカウント不要 ・ 通常1日以内に回答されます

まだ質問はありません。DEF ファイルについて最初の質問をしてみましょう。

よくある質問

プログラミングにおける .def ファイルとは何ですか?
モジュール定義ファイルです。リンカー指示のプレーンテキストリストであり、主に DLL が公開すべき関数を指定する EXPORTS セクションで構成されます。Windows の DLL または EXE をビルドする際に、リンカーに渡します(link /DEF:name.def)。
.def ファイルを開くにはどうすればよいですか?
プレーンテキストなので、VS Code、Notepad++、または Visual Studio 内のエディタで開けます。ビルドで使用するには、プロジェクトのリンカー設定「モジュール定義ファイル (/DEF)」に追加します。
__declspec(dllexport) を使用している場合でも .def ファイルは必要ですか?
多くの場合、必要ありません。ソースレベルのエクスポート属性でほとんどのケースをカバーできます。ただし、安定したエクスポート序数が必要な場合、装飾されていない C 名をエクスポートする場合、またはそれを必要とするレガシープロジェクトやツールチェーンでは依然として有用です。
.def から .lib を作成するにはどうすればよいですか?
MSVC の LIB ツールを使用します: lib /DEF:name.def /OUT:name.lib /MACHINE:X64(または MinGW の dlltool)。これにより、他のコードが .def の記述する DLL に対してリンクできるようにするためのインポートライブラリが構築されます。
リンカーがエクスポートの欠落を報告するのはなぜですか?
多くの場合、シンボルが .def の EXPORTS セクションにリストされていないか、名前の装飾が予想と異なっているか、序数が変更されたことが原因です。EXPORTS リストが実際の関数名と一致しているか、およびリンカーに正しく渡されているかを確認してください。
.def ファイルがリンカーファイルではないようです。他に何が .def を使用しますか?
いくつかの無関係なプログラムが、独自の「定義」データに .def を再利用しています。ゲームマップ定義(例:Tibia)、データベース/GIS スキーマ(SmartWare、ArcView)、または Modula-2/Oberon のモジュールインターフェイスなどです。これらは拡張子を共有しているだけの異なるフォーマットです。

参考文献

1Microsoft Learn - Module-Definition (.def) Fileslearn.microsoft.com
2Microsoft Learn - EXPORTS sectionlearn.microsoft.com

さらに探索

データベース全体から

今週のトップ拡張子

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.MDMarkdown Document
4.BINCD/DVD Disc Image (BIN/CUE)
5.NOMEDIAAndroid No-Media Marker File
6.PARTPartial Download File
7.RPMSGRestricted Permission Message
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.DBSQLite Database File

関連する拡張子

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

無料ファイルツール

ブラウザで動作するファイル識別および画像変換ツール。すべてお使いのデバイス上で実行されます。

ツールボックスを開く

ファイル拡張子を A-Z で閲覧