web-dev-qa-db-ja.com

Code :: Blocksを使用してライブラリにリンクするにはどうすればよいですか?

C++ GUIチュートリアル:TextOutへの未定義の参照

私は同じ問題を抱えていますが、プログラミングとCode :: Blocksが初めてなので、GDI32ライブラリを使用したいと思います。どうすればインストールできますか? windows.hヘッダーを使用できるので非常に混乱していますが、TextOutなどの一部の関数は使用できません。

18
optimusfrenk

Gdi32ライブラリは既にコンピューターにインストールされています。gdi32ライブラリがないと実行されるプログラムはほとんどありません。コンパイラには(適切にインストールされている場合)通常、インポートライブラリが付属しています。これは、リンカがプログラムとシステム内のファイルとの間のバインディングを作成するために使用するものです。 (まれに、システムライブラリ用のインポートライブラリがコンパイラに付属していない場合は、Microsoft Windows Platform SDKをダウンロードする必要があります。)

Gdi32とリンクするには:

enter image description here

これは、すべてのシステムライブラリのMinGW-gccで確実に動作します(他のコンパイラも使用している場合は動作するはずですですが、試したことがないことは話せません)。ライブラリのフルネームを書くこともできますが、libgdi32.agdi32より多くの型の仕事であること以外。
何らかの理由でnot動作する場合は、別の名前を指定する必要があります(たとえば、ライブラリの名前はgdi32.lib MSVCの場合)。

奇妙な場所にあるライブラリやプロジェクトのサブフォルダの場合、適切なパス名を指定する必要があります(ファイル選択ダイアログの[...]ボタンをクリックします)。

45
Damon

推測では、Code :: Blocksを使用してConsole Applicationプロジェクトを作成しました。このようなプロジェクトは、GDI stuffではリンクしません。コンソールアプリケーションは一般にグラフィックスを目的としておらず、TextOutはグラフィックス関数であるためです。機能を使用する場合GDIの場合、Win32 Gui Projectを作成する必要があります。これは、GDIにリンクするようにセットアップされます。

0
user2100815