ページ 11

コンパイルについて。

Posted: 2009年4月15日(水) 21:39
by 若名
初めて質問させてもらいます。
コマンドプロンプトでコンパイルする場合
DixLibをincludeさせることはできないでしょうか?
ちなみvisual studioではできています。
よろしくお願いします。

Re:コンパイルについて。

Posted: 2009年4月15日(水) 21:46
by box
>DixLibをincludeさせることはできないでしょうか?

トライしたけれどできなかった、ということなのでしょうか?

Re:コンパイルについて。

Posted: 2009年4月16日(木) 19:16
by 若名
そうです。

test.c(1) : fatal error C1083: include ファイルを開けません。'DxLib.h': No such
file or directory

というエラーが出たので
MicrosoftVisualStudio\VC\include
のフォルダにDxLib.hを入れて再度clを試してみたのですが

c:\program files\microsoft visual studio 9.0\vc\include\DxDirectX.h(927) : error
C2061: 構文エラー : 識別子 'D_IDirectSound'
c:\program files\microsoft visual studio 9.0\vc\include\DxDirectX.h(927) : error
C2059: 構文エラー : ';'
c:\program files\microsoft visual studio 9.0\vc\include\DxDirectX.h(927) : error
C2059: 構文エラー : ':'

など大量にエラーが出てきて
プログラム内のエラーが 100 個を超えました。コンパイルは中断されます。
表示され、コンパイルできません。
もともと無理なのでしょうか?

わかりにくい説明ですみません。

Re:コンパイルについて。

Posted: 2009年4月16日(木) 20:13
by toyo
Visual C++ 2008を起動してメニューの「ツール」-「Visual studio 2008 Command Prompt」からコマンドプロンプトを開いたらできるはずです。
通常のコマンドプロンプトからではインクルードやライブラリ等の各種設定がされないので無理です。
Makefileを作ればnmakeでできるかもしれません。

Re:コンパイルについて。

Posted: 2009年4月16日(木) 22:40
by Justy

>test.c(1)

 拡張子を cppにするか、コンパイラオプションに /TPをつけてください。

Re:コンパイルについて。

Posted: 2009年4月17日(金) 19:56
by 若名
>>toyoさん
それでやっていましたができませんでした。

>>Justyさん
無事コンパイルできました。

回答してくださった皆さんありがとうございました。

Re:コンパイルについて。

Posted: 2009年4月17日(金) 20:13
by 若名
すみません。
今度は
LINK : fatal error LNK1104: ファイル 'DxLib.lib' を開くことができません。
というエラーがでてきてしまいます。
何か解決法ご存じの方がいらっしゃいましたら
よろしくお願いします。

Re:コンパイルについて。

Posted: 2009年4月17日(金) 20:17
by 若名
何度もすみません。
解決しました。

龍神録26章にて

Posted: 2009年5月06日(水) 11:45
by アキシアル
こんにちは。そして初めまして、アキシアルと申します。

龍神録をPSPに移植しようとして、プログラミングの館1章から確認しつつ作業していたのですが、
26章にて、「ボスをボムを使用して倒す、又はボスをプレイヤー死亡処理中に倒すとフリーズしてしまう」
というバグが出るようになってしまいました。

printfDxを利用して確認してみると、boss.x、boss.yの値がおかしかったので、boss_shot.cpp内の
calc_phy()にある
boss.x=boss.phy.prex-((boss.phy.v0x*t)-0.5*boss.phy.ax*t*t);//現在いるべきx座標計算
boss.y=boss.phy.prey-((boss.phy.v0y*t)-0.5*boss.phy.ay*t*t);//現在いるべきy座標計算
の部分をコメントアウトしてテストしてみると、ボスが移動しなくなる代わりにフリーズを起こすことは
なくなりました。

恐らくboss.xとboss.yがオーバーフローしているのではないかと思うのですが、

・ボスの移動とフリーズ回避を両立させる手段
・なぜボム使用時と死亡処理中にのみフリーズするのか

がわかりません。

キーコンフィグまわり以外にプログラムを変更していないので、現状ではほぼサンプルプログラムと
同じだと思います。

使用環境はWindows Vista Visual C++ 2008EE PSPSDKとDxライブラリPortableを使用しています。

どうかよろしくお願い致します。

最後に長文失礼致しました。

Re:龍神録26章にて

Posted: 2009年5月06日(水) 14:25
by Justy

>部分をコメントアウトしてテストしてみると、ボスが移動しなくなる代わりに
>フリーズを起こすことは なくなりました

 この計算式で使われている変数のどれかが、未初期化 or 破壊されたなどの理由で
おかしな値になった結果、boss.x、boss.yの値もおかしくなっているのでしょう。

 なので、この式で使われているすべての変数をデバッガとかも使って見直して見てください。

 あと、DLできるサンプルと diffして自分が書いていないところ、間違って書いているところを
探してみるのもいいかもしれません。

Re:龍神録26章にて

Posted: 2009年5月06日(水) 16:26
by アキシアル
回答ありがとうございました。

diffを取ってみたところ、プログラムの中に FIELD_MAX_X,FIELD_MAX_Yという古い定数
(それぞれFMX,FMYに置き換えなければいけない定数です・・・)を見つけてしまいました・・・。
これが変数を破壊していたみたいで、修正したところフリーズも直りました。

お手数をおかけして申し訳ありませんでした。

そして本当にありがとうございました。