初めまして。太鼓の鉄人について質問があります。(C++どころかプログラミング自体初心者です・・・・。)
環境は win7 64bit とVC++2012 for Windows Desktopを使用しています。
太鼓の鉄人をお借りしてちょこちょこ改造してみたいとおもいDLさせていただきました。
実際に、VC++で開きDXライブラリの設定も済ませて(DXライブラリ置き場に書いてあったので参考に。)
一回取り敢えずそのままビルドをしてみたところ
102エラーと1警告がでました。詳細は以下のようになっています。
==================================================================================
警告 1 warning LNK4075: /EDITANDCONTINUE は /SAFESEH の指定によって無視されます。
エラー 102(2~102まで) error LNK2026: モジュールは SAFESEH イメージには安全ではありません。
エラー 103 error LNK1281: SAFESEH イメージを生成できません。
==================================================================================
これはデバッグビルドの時に発生した症状です。 どのようにすれば通るのでしょうか?
デバッグの方もリンカーの設定を安全な例外ハンドラーを含むイメージ』の項目を
『いいえ(/SAFESEH:NO)』に変更したほうがいいのでしょうか?
他に根本的に違うところがあるのでしょうか?よろしければご教示ください。お願い致します。
太鼓の鉄人について
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 太鼓の鉄人について
DXライブラリが古い環境でもコンパイルできる代わりに最新の環境では警告されます。
と言うことで仕様となります。
こちらにも説明がありますが、SAFESEH:NOでお使い下さい。
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxL ... press.html
と言うことで仕様となります。
こちらにも説明がありますが、SAFESEH:NOでお使い下さい。
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxL ... press.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 太鼓の鉄人について
返答ありがとうございます。
そのページではReleaseのSAFESEHをNOと書いてあったのでその通りにやってみたのですがダメでした。
また、先ほどデバッグのリンカー設定詳細のSAFESEHをNOに変えてみたところ
今度は外部シンボル~で参照されました。や~は未解決です、とでました。
例を上げますと
エラー 1 error LNK2019: 未解決の外部シンボル "int __cdecl DxLib::ClearDrawScreen(void)" (?ClearDrawScreen@DxLib@@YAHXZ) が関数 "int __cdecl ProcessLoop(void)" (?ProcessLoop@@YAHXZ)
で参照されました。
エラー 3 error LNK2001: 外部シンボル ""void __cdecl DxLib::DrawMemImg(struct DxLib::MEMIMG *,struct DxLib::MEMIMG const *,int,int,int,struct DxLib::MEMIMG const *)" (?DrawMemImg@DxLib@@YAXPAUMEMIMG@1@PBU21@HHH1@Z)" は未解決です。
みたいな感じのがいくつもでました。
何も弄っていないので変数や関数はそのままですしどういうことなのでしょうか?
そのページではReleaseのSAFESEHをNOと書いてあったのでその通りにやってみたのですがダメでした。
また、先ほどデバッグのリンカー設定詳細のSAFESEHをNOに変えてみたところ
今度は外部シンボル~で参照されました。や~は未解決です、とでました。
例を上げますと
エラー 1 error LNK2019: 未解決の外部シンボル "int __cdecl DxLib::ClearDrawScreen(void)" (?ClearDrawScreen@DxLib@@YAHXZ) が関数 "int __cdecl ProcessLoop(void)" (?ProcessLoop@@YAHXZ)
で参照されました。
エラー 3 error LNK2001: 外部シンボル ""void __cdecl DxLib::DrawMemImg(struct DxLib::MEMIMG *,struct DxLib::MEMIMG const *,int,int,int,struct DxLib::MEMIMG const *)" (?DrawMemImg@DxLib@@YAXPAUMEMIMG@1@PBU21@HHH1@Z)" は未解決です。
みたいな感じのがいくつもでました。
何も弄っていないので変数や関数はそのままですしどういうことなのでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 太鼓の鉄人について
DxLibのリンク設定がうまく出来ていない印象のエラーです。
未解決の外部シンボルエラーは全部DxLib関係ではないでしょうか?
未解決の外部シンボルエラーは全部DxLib関係ではないでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 太鼓の鉄人について
プロパティの設定は何回も見直しましたがあっているようです。
何度かデバッグビルドしていたら
警告 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
とでたので から に変更してみたら警告が消えました。
しかしDxLibの方はいまだにわかりません。 確かにエラーをよくみるとDxLibがなんとらかんたらとか書いてあるのでに関係している部分が大きいようなのですがなにがなんだか・・・
リンクの設定がどういうことなのかもイマイチ。
何度かデバッグビルドしていたら
警告 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
とでたので から に変更してみたら警告が消えました。
しかしDxLibの方はいまだにわかりません。 確かにエラーをよくみるとDxLibがなんとらかんたらとか書いてあるのでに関係している部分が大きいようなのですがなにがなんだか・・・
リンクの設定がどういうことなのかもイマイチ。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 太鼓の鉄人について
ここは直さなくてよいです。> 警告 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
とでたので
warning ですし、マイクロソフト専用の記述方法なので覚えなくても支障ないです。
あやしいのは、しかしDxLibの方はいまだにわかりません。 確かにエラーをよくみるとDxLibがなんとらかんたらとか書いてあるのでに関係している部分が大きいようなのですがなにがなんだか・・・
リンクの設定がどういうことなのかもイマイチ。
4.DXライブラリを使用するためのプロジェクトの設定を行う
⑧ 『追加のライブラリディレクトリ』の項目に⑥と全く同じDXライブラリのパッケージ内に入っている
『プロジェクトに追加すべきファイル_VC用』フォルダのパスを入力してから、
再度ダイアログ右下にある『適用』ボタンを押します。
だと思います。
うまく設定できていれば、
5.プログラムを組む
6.プロジェクトのビルド、実行
が出来るはずですので、太鼓の鉄人の前に確認してみてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 太鼓の鉄人について
おはようございます。
あの警告については無視してよかったのですね。
ちょっと1から見なおして一回他の簡単なプログラムで実験してからサンプルプログラムの方に移行していこうとおもいます。
また追って連絡させていただきます・・・・。
あの警告については無視してよかったのですね。
ちょっと1から見なおして一回他の簡単なプログラムで実験してからサンプルプログラムの方に移行していこうとおもいます。
また追って連絡させていただきます・・・・。
Re: 太鼓の鉄人について
http://homepage2.nifty.com/natupaji/DxL ... press.html ここを見て
1から設定を見直す意味でもう一度順を追って指示通りにやってみました。
結果から言うと無事実行に成功し画面中心には点が打たれていました。
これなら大丈夫かな?と思い slnファイルを開きさっきの流れにそってDXライブリの設定していざビルドへ。
しかし、モジュールは SAFESEH イメージには安全ではありません。とやはり出るのでプロパティからデバッグのSAFESEHをNOに変更しました。
するとやはりさきほどの状態に戻ってしまいました。(外部シンボル~の部分)
プロジェクトに追加すべきファイル_VC用のパス指定も特に間違っていない・・というかフォルダを選べば自動でやってくれてますし
⑥と⑧の部分は全く同じようにやっていますしパス指定も同じです。(当たり前だが)
ひとつ気になったのはGV.hです。"../include/DxLib.h" 階層が違うみたいなので同じ階層にして #include "Dxlib.h"に変更してみました。
まぁ当然同じ結果だったのですが・・・・。 次に"../include/GV.h"です。これは変更する必要がありますか?というかここの階層についていまいち理解していません。
1から設定を見直す意味でもう一度順を追って指示通りにやってみました。
結果から言うと無事実行に成功し画面中心には点が打たれていました。
これなら大丈夫かな?と思い slnファイルを開きさっきの流れにそってDXライブリの設定していざビルドへ。
しかし、モジュールは SAFESEH イメージには安全ではありません。とやはり出るのでプロパティからデバッグのSAFESEHをNOに変更しました。
するとやはりさきほどの状態に戻ってしまいました。(外部シンボル~の部分)
プロジェクトに追加すべきファイル_VC用のパス指定も特に間違っていない・・というかフォルダを選べば自動でやってくれてますし
⑥と⑧の部分は全く同じようにやっていますしパス指定も同じです。(当たり前だが)
ひとつ気になったのはGV.hです。"../include/DxLib.h" 階層が違うみたいなので同じ階層にして #include "Dxlib.h"に変更してみました。
まぁ当然同じ結果だったのですが・・・・。 次に"../include/GV.h"です。これは変更する必要がありますか?というかここの階層についていまいち理解していません。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 太鼓の鉄人について
太鼓の鉄人のプロジェクトが古いのでソースだけファイルコピーで流用して、プロジェクトは新規に作ったほうが良いかもしれませんね。
リンクのエラーですので、cppやらhやらは何ら関係ありません。
と言うよりそこは合格というかコンパイルが正常に通過してますのでいじると悪いスパイラルにハマリます。
リンクの設定だけやり直せばよいのかもしれませんが、時間が取れたら見てみますが私VS2013なのでVS2012とは動作が違うかもしれません。
リンクのエラーですので、cppやらhやらは何ら関係ありません。
と言うよりそこは合格というかコンパイルが正常に通過してますのでいじると悪いスパイラルにハマリます。
リンクの設定だけやり直せばよいのかもしれませんが、時間が取れたら見てみますが私VS2013なのでVS2012とは動作が違うかもしれません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 太鼓の鉄人について
すみませんずっとDxLibのバージョンを勘違いしていました。
実は最新のバージョンのDxLibでタイトル画面を作っていてそのせいでずっと思い違いをしていました。
内容はタイトル画面から設定画面と曲選択画面に分岐し曲選択画面からこのゲームに飛ばそうと考えていたのです。
私が使っていたバージョンが最新のだったということにようやく気づきました。
本当にアホだと思いました。多大な迷惑をおかけしたことをこの場を借りて謝罪します。
申し訳ありませんでした。
ゲームの方でまた質問させていただくこともあるかと思いますがその時はまたよろしくお願いいたします。
実は最新のバージョンのDxLibでタイトル画面を作っていてそのせいでずっと思い違いをしていました。
内容はタイトル画面から設定画面と曲選択画面に分岐し曲選択画面からこのゲームに飛ばそうと考えていたのです。
私が使っていたバージョンが最新のだったということにようやく気づきました。
本当にアホだと思いました。多大な迷惑をおかけしたことをこの場を借りて謝罪します。
申し訳ありませんでした。
ゲームの方でまた質問させていただくこともあるかと思いますがその時はまたよろしくお願いいたします。