ページ 11

龍神録46・47章がビルド出来ない件について

Posted: 2009年8月06日(木) 19:33
by ラグ
いつも助けてもらってばかりのラグです。
お世話になっております。

龍神録の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章までのものは全て通るようです。
ググってみたりもしましたが、どうも原因がわかりません。
どなたかこれを解決する方法を教えて頂けないでしょうか。
よろしくお願いします。

Re:龍神録46・47章がビルド出来ない件について

Posted: 2009年8月06日(木) 19:45
by ねこ
原因を追究されてるようなので、こういう場合の対処法等を書いてみます。
「未解決の外部シンボル」とエラー分にある場合、
「その先の処理名(関数名等)がありませんよ」と言われています。
この場合「DrawRotaGraphFdF」関数が無いといわれている状態です。

また関数でこのエラーが出る場合、原因は2通りあります。
1.関数が定義されていない
2.関数を呼び出す際の引数の個数、または型が異なる

上記の内容からVisualStudioであれば、検索機能を用いて関数名を検索し、見つかった場合は引数の確認を。
見つからない場合は参考にしているページで処理の有無を確認しましょう。

恐らくそれで解決すると思います。

Re:龍神録46・47章がビルド出来ない件について

Posted: 2009年8月06日(木) 21:03
by ラグ
>ねこさん
色々調べましたところ、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内の関数にも悪影響を及ぼし、エラーが発生していたようです。
記述をちゃんと読まなかった私のうっかりミスでした。お恥ずかしい限りです…。

今回はちゃんと原因をつきとめることが出来ました。次からはちゃんと本文読みます。
ご指導誠にありがとうございました。