• 締切済み

インポートライブラリ(.lib)ファイルについて

noname#271の回答

noname#271
noname#271
回答No.1

あなたが言っている通りライブラリです。 外部DLLを使う時はもちろん必要ですが #この時は、どういったDLLに必要とするライブラリが #あるのかの情報が記されている。 実行ファイルに直接リンクする関数 たとえば、 fopen() printof() など のライブラリ郡だったりします。 言い替えれば、オブジェクトファイル(.o)の塊 だと思ってください。 これがないと、あなたは普段何気に使っている fopen,printfなど自分で作らないと使えないことになりますよ

Richi
質問者

補足

御返事ありがとうございました。 初心者ですのでよく分からないので、追加で質問させて 頂きたいのですが、「実行ファイルに直接リンクする関数」というのはどういう意味なのでしょうか。 直接リンクする関数と、間接的にリンクする関数が 存在するのですか?。 インポートライブラリの役割としては (1)間接的にリンクする時の仲介役 (2)そのものが関数ファイル の2つがあるということになるのですか。 もう一つお聞きしたいのですが、C++ Builder5で 外部DLLを使用する時に、Implibというコマンドを使用 しないといけないそうですが、この使用方法がよく 分かりませんので教えていただけないでしょうか。 どうか御回答を宜しくお願いします。

関連するQ&A

  • libファイル無しでかつLoadLibraryを使わずにロードする方法

    お世話になります。 現在eMbedded VC でソフト開発を行っています。 今Libファイルが無く、ヘッダファイルとdll本体 だけが有るライブラリがあります。 このライブラリのソースはありません。 このライブラリを使用したい場合、LoadLibraryで動的ロードを行えばよいのですが、 どうしても静的に(Libファイルを用いるときのように)ロードを行いたい場合はどのようにすればよいでしょうか? 例えば ・ヘッダとdllからlibファイルを逆生成して使用する方法 やツールについて 等等・・ (原理的に無理な場合はそのようなご回答もお待ちしております。) お忙しい中ですが、皆様宜しくお願いいたします。

  • Unix上C++でのdllとインポートライブラリの関係

    こんにちわ。 いつも教えてgooにお世話になっているorange_pieです。 UNIX上のC++で作成した自作ライブラリをdllにして配布したいのですが、 Unixでの基本的な考え方を教えてください。 (1)Unix上ではDLLの標準的な名称は”libxxxx.so”とするのが普通ですか?  ※この形式ならLD_LIBRARY_PATH環境変数が検索してくれる。。。 (2)通常、DLLにする場合、インポートライブラリ(.lib)と実際のライブラリ(.so)を作成して、使用する側はインポートライブラリのみをリンクするのでしょうか? (3)配布されたdllを使う側では、Link時にインポートライブラリをリンクして、関連インクルードファイルをインクルードするだけで使えるのでしょうか? (4)上記の(2)のように、インポートライブラリとライブラリの実態を作成する為のコンパイルオプションが見つかりません。(ldのmanを見たのですが、意味がわからないと言うか。。。。。) この質問は、自作ライブラリからlibxxx.soという形のオブジェクトファイルを作り、別プログラムからこのlibxxxをコンパイルオプション(-l)でリンクしてみたら正しく動作したのですが、これでは結局ライブラリの本体が一緒にリンクされている様子で、出来上がった実行形式のファイルサイズが静的ライブラリとしてリンクした時と同じ大きさになっていることに疑問を抱いてしまったものです。  この状態でも、ライブラリの方だけコンパイルしなおして実行すると ちゃんとライブラリの変更点は反映されるので問題は無いのですが、 これでもダイナミックリンク・ライブラリと呼べるのでしょうか?

  • ライブラリ、.libとは?

    ライブラリと検索すると、標準ライブラリばかり出てきて「○○.lib」のことがいまいち見えてこないのですが、このファイルはどういったものなのでしょうか。 .h、.c、.cppなどでは代用が利かないものなのでしょうか。 あと、C、C++にはライブラリと言うものがあり、あると便利・・・ というのは何となく分かるのですが、 1.ライブラリを配布しているのをあまり見ませんが、どこかまとまって置いてある場所はあるのでしょうか。 2.あまり記載されている参考書が見当たりませんが、どのように使うものなのでしょうか。 3.「このライブラリはどういうものか覚えていた方がいい」というものはありますでしょうか。 この3点について教えていただけるとありがたいです。 よろしくお願いいたします。

  • .objファイル、.lib ファイルについて

    ◆C++でのコンパイルされたプログラムの参照について。  以前、VB.netで開発をしていた時は、コンパイルをするとDLLが作成され、  それを他のプログラムからリンクして使用していました。  C++の場合h、cppのファイルをコンパイルすると、「.DLL」はできないのでしょうか? ◆.obj、.lib について  Visual Studioにて、.obj、.lib を、参照先に設定していますが、  内容をよくわかっていません。  オブジェクトリンク、ライブラリリンクとは、  (1)それぞれどんな概念なのでしょうか?  (2).obj、.libでは何が違うのでしょうか?

  • ライブラリ内の処理中におけるライブラリリンクについて

    VC2005を使用しています。 ライブラリからライブラリファイルって使用できるんでしょうか? (例) A.lib内の処理に、B.DLLを明示的に読み込み処理 ----------------- <A.lib内の処理> hDLL = LoadLibrary("B.dll"); // DLLのロード if (hDLL != NULL) { ~ 処理実行 ~ } ----------------- 私の環境で何度やっても、GetLastErrorにて、 "7E"(ERROR_MOD_NOT_FOUND)が出力されます。 ロードしているパスに、B.dllは必ずあります。 上記の例は明示的リンクですが、暗黙的リンクでもかまいません。 ライブラリ処理の中でライブラリファイルを使用するには、 どうすれば良いでしょうか。 もしかして、ライブラリ内で他のライブラリを使用できない 等のオチもあるのでしょうか...。

  • DLLとインポート、エクスポート

    環境 Microsoft Visual C++ DLLはWin32 Dynamic-Link Library ExeはWin32 Application で作成しています。 DLLにメッセージボックスを表示するのみの処理の関数があり。 Exe側でその関数を使用したいだけです。 DLLのヘッダファイルにエクスポートしたい関数を _declspec(dllexport) void exportmain(); としています。 Exeではインポートを __declspec(dllimport) void exportmain(); としています。 プロジェクト⇒設定⇒リンクにlibファイルの設定もしています。 dll、libファイルの場所も問題ないと思います。 しかし、ビルドすると「外部シンボル~~未解決です」とエラーがでてしまいます。なにか原因がわかるかたおりましたら、ご教授お願い致します。

  • visual studio 2008 libファイルの使い方

    外部からlibファイルをリンクしたいのですがやり方が分かりません。 プロパティのリンカ-全般から追加のライブラリディレクトリを指定するのですが、入力の追加ファイルからリンクしたいファイルをどう指定するのかが分かりません。 どなたかご教示していただけないでしょうか。

  • DLLファイルとLIBファイル

    同じ名前のついているDLLファイルとLIBファイルの関係についていまいちつかめめません…どのような関係があるのでしょうか?

  • msimg32.libファイルをリンカにインポート? (初心者です

    初めまして。独学でwindowsプログラミングを学習しているものです。 ビットブロックを転送する方法をいまやっているのですが、TransparentBlt関数を使うと 「未解決のシンボル _imp_TransparentBlt@44 が関数 _WindowPorc@16で参照されました。」 「外部参照 1 が未解決です」 と出ます。 最初は自分のソースが間違ってるのかな・・って思って、本に付属していたCD-ROMのソースをそのままコピペしてビルドしたのですが、結果は同じでした。 本に、「開発環境の設定によってはmsimg32.libファイルをリンカにインポートする必要があります。msimg32.libを設定に追加してください」 と書いてあって、ビルドできないのはそれが原因なのかな・・ って思い、設定に追加しようと思ったんですが、追加の仕方が分かりません。 自分なりにインターネットで調べたり、過去の質問を検索してみたりしたんですが、分かりませんでした。 msimg32.libファイルをリンカの設定に追加する方法を教えてください。 ちなみに環境はWindowsXP HomeEdition Visual Stdio.NET 2003  です

  • Arduinoでのライブラリファイル生成方法

    Arduinoで.aファイルまたは.dllファイルのライブラリを生成&使用したいのですが、 Arduino IDEではライブラリファイルの生成が出来ないように思われます。 Arduinoで使用可能な.a / .dllファイルの生成方法を教えて頂けると助かります !! (Atmel Studioを用いることで可能なのでしょうか?) またArduino IDEにおいて、ライブラリ使用方法も合わせてご教授願いたいです。