質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

4921閲覧

c++のDLL,Lib,ヘッダーファイルについて

nguyenseiji

総合スコア156

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/05/13 08:49

お世話になっております
いつもC++をVisual Studioで使っていてあまり考える事はないのですが
DLL,Lib,ヘッダーファイルについてこのような考えでいいのでしょうか

例えば
ゲームの作成に必要なSDL2を使うとしたら必ずDLL,Lib,ヘッダーファイルの設定が必要なのですが
DLLはパッケージングしたときに別で保存されるので後で変更したいときに使う
Libはパッケージング時に変更不可
ヘッダーは変更可能

思うのですがヘッダーファイルはいらなくないですか
SDL2を使ったときのDLLやLibではコードの変更ができないからヘッダーファイルを使うのでしょうか?

Visual Studio のc++でDLLやLibがあるのにわざわざヘッダーを使う理由がわかりません...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/13 09:08

明示的/暗黙的なリンクの違いについては把握していますか?
退会済みユーザー

退会済みユーザー

2021/05/14 04:35 編集

なんか今回の質問も過去の質問も質問しっぱなしで回答ついてるのに放置してるものが多いですが、解決していないならついている回答にコメント返信するなりして、解決したのであればベストアンサー選択してクローズしてください。放置はNGです。
guest

回答2

0

ベストアンサー

Windows の実行ファイル (exe と dll) は PE と呼ばれる形式、またオブジェクトファイルやライブラリは一般的に COFF (古い開発環境では OMF) と呼ばれる形式が用いられます。 資料をよく見て頂ければわかりますが、これらは名前とアドレスの組で管理しており、引数に関する情報を持ちません。

関数の呼出し方については、呼び出される側が想定する通りの値を渡さないと破綻して暴走してしまいます。 引数の渡し方について機械語レベルでどのような処理をするのかは呼び出し規則として定められていますが、各関数がどのような値を必要としているのかについて呼び出す側と呼び出される側が共通の情報を持つためには何らかの方法が必要です。 それがヘッダファイルです。

書こうと思えばヘッダファイルに定義を含めることも出来ますが、原則としてはヘッダファイルには関数定義は書きません。 関数プロトタイプ宣言という形で関数の形式に関する情報を書いているだけです。 DLL や LIB だけあっても使いものになりませんし、ヘッダファイルだけあっても使えません。

投稿2021/05/13 09:35

SaitoAtsushi

総合スコア5444

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nguyenseiji

2021/06/01 14:17

分かりやすい 説明をありがとうございました!
guest

0

DLLとLibだけではその中で使用されているデータ型やエクスポートされている関数が分かりませんけど、どうやって使うんですか?

投稿2021/05/13 08:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問