1>------ ビルド開始: プロジェクト: gameengine project, 構成: Debug Win32 ------
1>リンクしています...
1>main.obj : error LNK2019: 未解決の外部シンボル "void __cdecl TrnsBlt(struct HDC__ *,struct HDC__ *,int,int,int,int,int,int)" (?TrnsBlt@@YAXPAUHDC__@@0HHHHHH@Z) が関数 "unsigned long __stdcall ThreadFunc(void *)" (?ThreadFunc@@YGKPAX@Z) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "void __cdecl BBlt(struct HDC__ *,struct HDC__ *,int,int,int,int,int,int)" (?BBlt@@YAXPAUHDC__@@0HHHHHH@Z) が関数 "unsigned long __stdcall ThreadFunc(void *)" (?ThreadFunc@@YGKPAX@Z) で参照されました。
1>C:\Users\Owner\Desktop\課題\gameengine project\Debug\gameengine project.exe : fatal error LNK1120: 外部参照 2 が未解決です。
1>ビルドログは "file://c:\Users\Owner\Desktop\課題\gameengine project\gameengine project\Debug\BuildLog.htm" に保存されました。
1>gameengine project - エラー 3、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
というコンパイルエラーが出て原因が解らず困っています。
解決方法を教えてください。
環境は、visualstudio2008 でOSはWindows7(64bit)です。
同じ質問をこちらにも掲載しています。
http://social.msdn.microsoft.com/Forums ... 053425e579
未解決の外部シンボルについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 未解決の外部シンボルについて
これはコンパイルエラーではなリンクエラーです。
TrnsBltやBBltは内部の関数ではなく外部のライブラリだと思いますが、ちゃんとライブラリのリンクの指定はされていますか?
TrnsBltやBBltは内部の関数ではなく外部のライブラリだと思いますが、ちゃんとライブラリのリンクの指定はされていますか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 未解決の外部シンボルについて
以下がヘッターファイルになります。
#include"windows.h"
//プロトタイプ宣言
bool LoadBMP(HBITMAP*, LPCTSTR); //画像読込み
void TrnsBlt(HDC,HDC,int ,int,int,int,int,int);//透過表示
void BBlt(HDC,HDC,int,int,int,int,int,int); //画像表示
bool HitCheck(int,int,int,int,int,int); //衝突判定
上記のように .hファイルにあります。
#include"windows.h"
//プロトタイプ宣言
bool LoadBMP(HBITMAP*, LPCTSTR); //画像読込み
void TrnsBlt(HDC,HDC,int ,int,int,int,int,int);//透過表示
void BBlt(HDC,HDC,int,int,int,int,int,int); //画像表示
bool HitCheck(int,int,int,int,int,int); //衝突判定
上記のように .hファイルにあります。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 未解決の外部シンボルについて
ヘッダファイルに書いただけではリンクされません。
ライブラリの実体であるxxx.libファイルをオプションで指定する必要があります。
ライブラリの実体であるxxx.libファイルをオプションで指定する必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 未解決の外部シンボルについて
プロジェクト>※※のプロパティ>構成プロパティ>リンカ>コマンドライン>追加オプションに「msimg32.lib winmm.lib」のライブラリを入れました。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 未解決の外部シンボルについて
これらの関数は、msimg32.lib winmm.libには含まれていないと思います。
bool LoadBMP(HBITMAP*, LPCTSTR); //画像読込み
void TrnsBlt(HDC,HDC,int ,int,int,int,int,int);//透過表示
void BBlt(HDC,HDC,int,int,int,int,int,int); //画像表示
bool HitCheck(int,int,int,int,int,int); //衝突判定
これらの関数の実体は何処のライブラリや何処のソースコードにあるのでしょうか?
bool LoadBMP(HBITMAP*, LPCTSTR); //画像読込み
void TrnsBlt(HDC,HDC,int ,int,int,int,int,int);//透過表示
void BBlt(HDC,HDC,int,int,int,int,int,int); //画像表示
bool HitCheck(int,int,int,int,int,int); //衝突判定
これらの関数の実体は何処のライブラリや何処のソースコードにあるのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。