dポイントプレゼントキャンペーン実施中!

#include "myhelper.h"
#include "mymain_4.h"

//自キャラのデータ
Point2D g_jikipos = {40, 400};

//画像ハンドル
int g_jikiimage[11];

//色々なファイルの読み込み
int LoadFiles() {
//画像ファイルの読み込み

if (LoadDivGraph("media\\player01.bmp",
11, 11, 1, 64, 64, g_jikiimage) == -1) return -1;

return 1;
}


.obj : error  LNK2019: 未解決の外部シンボル (?MyMain_4@@YAXXZ) が関数 _WinMain@16 で参照されました。  

error LNK1120: 外部参照 1 が未解決です。      .exeファイル


この記述の時、こういったエラーに見舞われます。
プログラムの記述でしょうか?

ネットで調べ、ファイルの形式をWIN32コンソールアプリケーションに変えても、
エラーが取れませんでした。  

何か方法があればと思い質問します。  VC++の2010を使っています。

A 回答 (1件)

C/C++では、最後にobjファイルをまとめてDLLやEXEにする「リンク」という作業があり、このときに、各ファイルやライブラリにちらばっている関数や変数等の名前(シンボル)を、その 実体と結びつける作業を行います。



このとき、その結びつけるべき相手が無いのときに出るのがこのエラーです。

> .obj : error  LNK2019: 未解決の外部シンボル (?MyMain_4@@YAXXZ) が関数 _WinMain@16 で参照されました。

とあるように、 MyMain_4という関数が、宣言だけされていて、その実体が無いのがエラーの原因です。

C++の場合、多重定義というのがあって、同じ関数名でも、引数が違うと別の関数とみなされます。
例えば、 mymain_4.hの中で 「MyMain_4(int)」と宣言していて、実際の定義(命名から想像するとmymain_4.cppの中?)では「My_main_4(char)」が定義されてる、とか、そういう間違いは無いですか?
    • good
    • 0
この回答へのお礼

私にも、大変わかりやすい回答で有り難うござます。
試してみて解決し、なんとなく理解も出来ました。

参考書を見ながら勉強していまして、
mymain_4を宣言しておき内容を書き込んでいませんでした。
内容を記述することにより解決できました。
本当に有り難うございます。
勉強頑張ります。

お礼日時:2011/09/06 02:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!