いつも助けてもらってばかりのラグです。
お世話になっております。
龍神録の46章および47章がコンパイルエラーで通りません。
エラーログは以下のとおりです。
1>graph.obj : error LNK2019: 未解決の外部シンボル "int __cdecl DrawRotaGraphFdF(float,float,double,double,int,int,int)" (?DrawRotaGraphFdF@@YAHMMNNHHH@Z) が関数 "void __cdecl boss_assist_img(void)" (?boss_assist_img@@YAXXZ) で参照されました。
1>C:\Documents and Settings\USER1\デスクトップ\STG\MyProject\47章\Debug\RyuJin.exe : fatal error LNK1120: 外部参照 1 が未解決です。
46章および47章以外で50章までのものは全て通るようです。
ググってみたりもしましたが、どうも原因がわかりません。
どなたかこれを解決する方法を教えて頂けないでしょうか。
よろしくお願いします。
龍神録46・47章がビルド出来ない件について
Re:龍神録46・47章がビルド出来ない件について
原因を追究されてるようなので、こういう場合の対処法等を書いてみます。
「未解決の外部シンボル」とエラー分にある場合、
「その先の処理名(関数名等)がありませんよ」と言われています。
この場合「DrawRotaGraphFdF」関数が無いといわれている状態です。
また関数でこのエラーが出る場合、原因は2通りあります。
1.関数が定義されていない
2.関数を呼び出す際の引数の個数、または型が異なる
上記の内容からVisualStudioであれば、検索機能を用いて関数名を検索し、見つかった場合は引数の確認を。
見つからない場合は参考にしているページで処理の有無を確認しましょう。
恐らくそれで解決すると思います。
「未解決の外部シンボル」とエラー分にある場合、
「その先の処理名(関数名等)がありませんよ」と言われています。
この場合「DrawRotaGraphFdF」関数が無いといわれている状態です。
また関数でこのエラーが出る場合、原因は2通りあります。
1.関数が定義されていない
2.関数を呼び出す際の引数の個数、または型が異なる
上記の内容からVisualStudioであれば、検索機能を用いて関数名を検索し、見つかった場合は引数の確認を。
見つからない場合は参考にしているページで処理の有無を確認しましょう。
恐らくそれで解決すると思います。
Re:龍神録46・47章がビルド出来ない件について
>ねこさん
色々調べましたところ、Dxlib.h内の「DrawRotaGraphF」が「DrawRotaGraphFdF」に置き換わっていて、これを元に戻すとコンパイルが通りました。
龍神録プログラムの館第46章(http://dixq.net/rp/46.html)の指示通りに進めてきたのですが、このページの中ほどにある記述
ここは「置換」という機能を使いましょう。
graph.cpp内にある
+FX
+FY
+dn.x
+dn.y
これらを全て消してください。
置換ウィンドウを出して、検索文字列に上記を書き、置換する部分に何も書かなければよいです。
次に同様にgraph.cpp内の以下を
DrawRotaGraphF → DrawRotaGraphFdF
DrawModiGraphF → DrawModiGraphFdF
このように置換します。
ここで、どうやらソリューション全てのDrawRotaGraphFおよびDrawModiGraphFを置換してしまったため、Dxlib.h内の関数にも悪影響を及ぼし、エラーが発生していたようです。
記述をちゃんと読まなかった私のうっかりミスでした。お恥ずかしい限りです…。
今回はちゃんと原因をつきとめることが出来ました。次からはちゃんと本文読みます。
ご指導誠にありがとうございました。
色々調べましたところ、Dxlib.h内の「DrawRotaGraphF」が「DrawRotaGraphFdF」に置き換わっていて、これを元に戻すとコンパイルが通りました。
龍神録プログラムの館第46章(http://dixq.net/rp/46.html)の指示通りに進めてきたのですが、このページの中ほどにある記述
ここは「置換」という機能を使いましょう。
graph.cpp内にある
+FX
+FY
+dn.x
+dn.y
これらを全て消してください。
置換ウィンドウを出して、検索文字列に上記を書き、置換する部分に何も書かなければよいです。
次に同様にgraph.cpp内の以下を
DrawRotaGraphF → DrawRotaGraphFdF
DrawModiGraphF → DrawModiGraphFdF
このように置換します。
ここで、どうやらソリューション全てのDrawRotaGraphFおよびDrawModiGraphFを置換してしまったため、Dxlib.h内の関数にも悪影響を及ぼし、エラーが発生していたようです。
記述をちゃんと読まなかった私のうっかりミスでした。お恥ずかしい限りです…。
今回はちゃんと原因をつきとめることが出来ました。次からはちゃんと本文読みます。
ご指導誠にありがとうございました。