質問です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
さい

質問です

#1

投稿記事 by さい » 18年前

シューティングゲームの館の6節「先ほどのプログラムを分割する」において
指示通りしたあとに実行すると

Error: 外部シンボル '_img_sound_load' が未解決(C:\******\MAIN\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_initialization' が未解決(C:\******\MAIN\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_SetColor' が未解決(C:\******\MAIN\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_Background' が未解決(C:\******\MAIN\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_PlayerControl' が未解決(C:\******\MAIN\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_Background2' が未解決(C:\******\MAIN\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_FpsTimeFanction' が未解決(C:\******\MAIN\DEBUG\MAIN.OBJ が参照)

というかエラーが出てしまいます。
どういった原因が考えられるでしょうか。

ちなみにコピーして貼り付けてみても同様だったので打ちまちがいはないと思います。

Borland使用です

管理人

Re:質問です

#2

投稿記事 by 管理人 » 18年前

Borlandはフリー版しか使った事が無く、コマンドプロンプトでbcc32...とうつやつしか知らないんでよくわかりませんが、
Makefileとか作らなくていいんですかね?

プロジェクトごとダウンロードできるんで、よかったら
VisualStudio2005 ExpressEdition(無料)を使ってみてください。

Justy

Re:質問です

#3

投稿記事 by Justy » 18年前

どういった原因が考えられるでしょうか

 多分、BCCの仕様ではないかと思われます。
[color=#d0d0ff" face="monospace]
        extern void img_sound_load();
        extern void initialization();
        extern void SetColor();
        extern void Background();
        extern void PlayerControl();
        extern void Background2();
        extern void FpsTimeFanction();[/color]
 が WinMain関数の中にあると思いますが、これらを WinMain関数の外での宣言になるよう
移動してみて下さい。

 それで直ると思います。


#[url]formz.cgi?action=res&resno=6091&page=&lognum=20&id=dixq&rln=6294[/url]

さい

Re:質問です

#4

投稿記事 by さい » 18年前

ありがとうございます。
VisualStudio2005の製品版を持っていたので使ってみました。

が、旧バージョンであったのか
DxLib.slnを開くと変換を求められました。

「すべてを正常に変換しましたがいくつかの警告があります」
と表示されました。

以下がそれです。


ファイル名 状態 エラー 警告
DxLib.vcproj 変換済み 0 3
変換の問題 - DxLib.vcproj:
Visual C++ はセキュリティで保護された C ランタイム ライブラリ バージョンをサポートします。このライブラリの使用は既定でオンにされています。プロジェクトをビルドするときに、使用できない機能についての警告が表示されるかもしれません。コードをより安全にするために、これらの警告を修正してください。
C/C++ コンパイラの既定の設定は、ISO 標準の C++ により準拠するように編集されました。変更には、ループ スコープに対して標準 C++ を適用したり、wchar_t をネイティブ型としてサポートすることなどが含まれます。これらの変更によって、既存のコードが、コードへの変更、またはビルドされたときのコンパイラ オプションを含まずに、コンパイルされることがなくなる可能性があります。
シングル スレッドのランタイム ライブラリ スイッチ (/MLd, /ML) が C++ コンパイラから削除されました。プロジェクトは、マルチ スレッドのランタイム ライブラリ スイッチ (/MTd, /MT) を使用するように、自動的に変換されました。
プロジェクトは正常にアップグレードされました。
C/C++ コンパイラ スイッチ /YX は現在サポートされていません。/YX はプロジェクト設置から削除されました。
Visual C++ プロジェクトが埋め込み (既定で) Windows SxS マニフェストを生成するための必要条件によって、プロジェクト内のマニフェスト ファイルは、マニフェスト ツールを使用してビルドすることから自動的に除外されます。すべてのマニフェスト ファイルに含まれる依存関係情報を、ソース コードからインクルードされたヘッダー ファイル内で、"#pragma コメント(リンカ、"<依存関係をここに挿入>")" に変換することをお勧めします。プロジェクトが、リソース (.rc) ファイルをとおして RT_MANIFEST リソース セクションにマニフェストを埋め込んでいる場合、プロジェクトが正しくビルドされる前に、行をコメント アウトしなければなりません。
C++ コンパイラの準拠の変更によって、プロジェクトがビルドする前にコード変更が必要になる場合があります。C++ コンパイラの旧バージョンは、メンバ関数名 (例: MemberFunctionName) によるメンバ関数ポインタの指定を許可していました。C++ 標準では、演算子のアドレスを使用した完全修飾名 (例: &ClassName::MemberFunctionName) が必要です。プロジェクトが Windows フォーム デザイナで使用されたフォームやコントロールを含む場合は、デザイナが生成したコードがデリゲート構築で規格外の構文を使ったため (イベント ハンドラを使用して)、InitializeComponent でコード変更をしなければならない可能性があります。


その語さっきのように6節の通りやると
大量のエラーがでてしまいました。

さい

Re:質問です

#5

投稿記事 by さい » 18年前

Justyさんのご指摘のようにしましたら
無事解決いたしました!!
本当にこんな深夜にありがとうございました。


また
当方C言語超初心者ですがこれから学んでいくに
あたって気をつけたほうがいいこととかありますか?

Justy

Re:質問です

#6

投稿記事 by Justy » 18年前

無事解決いたしました!!
本当にこんな深夜にありがとうございました
 どういたしまして。
 解決して何よりです。


気をつけたほうがいいこととかありますか
 特にこれといってありませんが、せっかく VS2005(MSVC8.0)を持ってらっしゃるなら、BCCより
そちらを使った方がいいかと思いますよ。
 館の記事も MSVC向けに書かれていますし。


大量のエラーがでてしまいました
 私は VS2005は持ってないので判りませんが、その変換を行ってその警告が出た後、
プロジェクトのビルドも失敗しますか?

 ビルドに失敗していないのであればさほど気にしなくてもいいかもしれません。

管理人

Re:質問です

#7

投稿記事 by 管理人 » 18年前

おぉ、そんな仕様があるんですか。参考になります。

後、フリー版では少々設定が必要です。
フリー版を使う時の設定方法はこちらです。
http://homepage2.nifty.com/natupaji/DxL ... press.html

さい

Re:質問です

#8

投稿記事 by さい » 18年前

ありがとうございます。

Justyさん
VS2005は重い上に
前項のようなことがあったので
変更しようか迷っているところでもあります。

ちなみにビルドは失敗していました。


管理人さん
ありがとうございます。
フリー版を使う時には参考にさせていただきます。





また、追加の質問ですが
ゲープロ館の4節に
「透過処理されるのは、限りなく黒に近い色か、画像に予め透過処理をしてある部分です。」
とありますが、サンプル素材の画像(charやshot)には黒で塗られていません。
あらかじめ透過処理というのをしているのでしょうか。
自分の画像を使いたい場合に透過処理はどうすればいいですか?

それとも
int SetTransColor( , , ) ;
を使用するのでしょうか。
その場合分割した現在、どこに入れればいいのでしょうか。

管理人

Re:質問です

#9

投稿記事 by 管理人 » 18年前

あ、すみません、製品版を「持っていた」んですか。
どこかで使用しただけかと思いました。
製品版をせっかくお持ちなのでしたらそちらをお使いになるといいですよ。

コンパイルの件は全て解決しました?

また、サンプルは透過処理していたと思います。
フォトショップやGIMP、PictBearなどの画像ソフトをご存知でしょうか?
フォトショは有料ですが、他は無料です。特にGIMPはフリーのくせに数万するソフト並みの機能をもっているので、オススメです。
私はフォトショの方が肌にあっているのでGIMPは使っていませんが・・。
これらどれでも透過処理出来ます。
ウィンドウズに元々入っているペイントではやりにくいので、もしペイントをお使いなのでしたら黒で塗りつぶしてください。
しかしそうするとαブレンドが出来ないので、やはり画像にこるのなら画像ソフトを使うべきですね。

ペイントはメニューバーの「変形」>「背景を不透明にする」にチェックが入っていると思うので、それを外せば良かったとおもいます。
しかしペイントはやりにくいです・・。

とは言えペイントを使っていた時期が長かったのでなれているせいもあり、微調整などよくペイントは利用します。
クリック一つで画像サイズが変更できたり、ペイントもペイントで使いやすいんですよね。

・・なんてダラダラまとまりの無い話をしましたが、一度画像ソフトもためしてみてください。
何かわからなければ聞いてください。

さい

Re:質問です

#10

投稿記事 by さい » 18年前

ありがとうございました
GIMPを使って透過処理が出来ました!!


ところでふと思ったのですが、DxLibのウィンドウサイズって
変更は出来ないのでしょうか。
いまのサイズだと小さくて・・・

フルスクーリーンにするほかはないのでしょうか。

管理人

Re:質問です

#11

投稿記事 by 管理人 » 18年前

サイズは自由に変更できますよ。
http://homepage2.nifty.com/natupaji/DxL ... .html#R4N1
こちらを参考にしてください。

リファレンスページの「ウインドウモード関係」で他にも色々変更が出来ます。

閉鎖

“C言語何でも質問掲示板” へ戻る