ページ 11

directXについて

Posted: 2015年6月07日(日) 20:10
by null.XxqpxX
VisualStudio2013でdirectXを入れたはずなのにエラー
directXをC直下においてファイルパス指定しても動いてくれないので、詳しい人教えてください・・・
このコードの宣言のWINAPIでエラーが出ます。

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	int ModelHandle;
	ChangeWindowMode(true);

	// DXライブラリの初期化
	if (DxLib_Init() < 0)
	{
		// エラーが発生したら直ちに終了
		return -1;
	}

	// 3Dモデルの読み込み
	ModelHandle = MV1LoadModel("res\\mobs\\baster.x");

	// 画面に映る位置に3Dモデルを移動
	MV1SetPosition(ModelHandle, VGet(320.0f, -300.0f, 600.0f));

	// 3Dモデルの描画
	MV1DrawModel(ModelHandle);

	// キーの入力待ち
	WaitKey();

	// DXライブラリの後始末
	DxLib_End();

	// ソフトの終了
	return 0;
}

Re: directXについて

Posted: 2015年6月07日(日) 20:32
by プラム
うんとですね、DirectXではなくDxLibの間違いだと思います、まず、DxLibが読み込めていない場合は、コンパイルエラーが出るので、そのエラーの内容を見てないのでわかりませんが、たぶん読み込めてないんだと思います、ファイル指定のところを確認してみてください、あと、モデルの読み込み方の問題ですね、「¥¥」ではなく「/」にするとたぶん行けると思います、そこは、ModelHandleの値を調べてみれば、読み込めているかわかりますし、デバックでも、わかるので、VC++は便利なので、デバック機能を使ってみましょう

Re: directXについて

Posted: 2015年6月07日(日) 20:35
by みけCAT
ハルルン さんが書きました:うんとですね、DirectXではなくDxLibの間違いだと思います
そうですね。
ハルルン さんが書きました:まず、DxLibが読み込めていない場合は、コンパイルエラーが出るので、モデルの読み込み方の問題ですね、「¥¥」ではなく「/」にするとたぶん行けると思います
コンパイルエラーが出るのならばモデル以前の問題なので、たぶん行けないと思います。まず具体的なエラーメッセージを教えてください。

Re: directXについて

Posted: 2015年6月07日(日) 20:37
by namachan10777
エラーとはいったい何のことでしょうか?
コンパイルエラー、リンカエラー、アクセス違反、例外、DXライブラリ内のエラー、いろいろなものがありますがどれでしょうか。
パッと見た感じだと

コード:

  
    // 3Dモデルの読み込み
    ModelHandle = MV1LoadModel("res\\mobs\\baster.x");
がおかしい気がします。
DXライブラリはパスを区切るセパレータが\ではなく/だった気がします
3Dは使ったことが無いので確実にそうだとは言えませんが、\\を/に直してみてください
あと、directXとは何でしょう?DXライブラリに見えるのですが

Re: directXについて

Posted: 2015年6月07日(日) 20:38
by プラム
ごめんなさい、不足があり、間違えて送信してしまったので編集しました「DxLibが読み込めていない場合は、コンパイルエラーが出るので、そのエラーの内容を見てないのでわかりませんが、たぶん読み込めてないんだと思います」←ココ
具体的なエラーメッセージと言われましても、コンパイルエラー時に出るメッセージをコピペしてみてくださいと言うしかないですよね

Re: directXについて

Posted: 2015年6月07日(日) 20:41
by みけCAT
ハルルン さんが書きました:あと、モデルの読み込み方の問題ですね、「¥¥」ではなく「/」にするとたぶん行けると思います
・元の質問でモデルの読み込み方については全く言及されていません。
・確かに「¥¥」(U+00A5)や、この文で書かれている「¥¥」(全角)ではいけませんが、元のコードで使用されている「\\」(U+005C)なら問題ないはずです。

Re: directXについて

Posted: 2015年6月07日(日) 20:43
by プラム
みけCAT さんが書きました: ハルルン さんが書きました:
あと、モデルの読み込み方の問題ですね、「¥¥」ではなく「/」にするとたぶん行けると思います


・元の質問でモデルの読み込み方については全く言及されていません。
・確かに「¥¥」(U+00A5)や、この文で書かれている「¥¥」(全角)ではいけませんが、元のコードで使用されている「\\」(U+005C)なら問題ないはずです。
DxLibの場合それだと出来ない気がします

Re: directXについて

Posted: 2015年6月07日(日) 20:44
by みけCAT
namachan10777 さんが書きました:パッと見た感じだと

コード:

  
    // 3Dモデルの読み込み
    ModelHandle = MV1LoadModel("res\\mobs\\baster.x");
がおかしい気がします。
質問文に「このコードの宣言のWINAPIでエラーが出ます。」とはっきり書いてあります。
MV1LoadModelはWINAPIではありません。
オフトピック
確かにWINAPI以外でエラーが出ないとは書いてないけどさ…
namachan10777 さんが書きました:DXライブラリはパスを区切るセパレータが\ではなく/だった気がします
3Dは使ったことが無いので確実にそうだとは言えませんが、\\を/に直してみてください
DxLibにてXファイルを読み込む....のコードで\\が使用されており、問題なく読み込めたので、意味はあまり無いと思います。

Re: directXについて

Posted: 2015年6月07日(日) 20:46
by プラム
もうその//関連の話やめましょうか

Re: directXについて

Posted: 2015年6月07日(日) 20:47
by みけCAT
ハルルン さんが書きました:
みけCAT さんが書きました: ハルルン さんが書きました:
あと、モデルの読み込み方の問題ですね、「¥¥」ではなく「/」にするとたぶん行けると思います


・元の質問でモデルの読み込み方については全く言及されていません。
・確かに「¥¥」(U+00A5)や、この文で書かれている「¥¥」(全角)ではいけませんが、元のコードで使用されている「\\」(U+005C)なら問題ないはずです。[​/quote]
DxLibの場合それだと出来ない気がします
気のせいでしょう。
\\が使用されているDxLibにてXファイルを読み込む....のコードで読み込みに成功しています。
さらに、データをアーカイブにしても\\のままでちゃんと読み込むことができました。

Re: directXについて

Posted: 2015年6月07日(日) 20:51
by プラム
まあとりあえずDxLibがリンカーか何か正しく読み込めてない以外これ無いでしょ、というかエラー内容わかんないですし

Re: directXについて

Posted: 2015年6月07日(日) 20:54
by namachan10777
申し訳ありません。訂正です\\でもデータは読み込めます

Re: directXについて

Posted: 2015年6月07日(日) 23:44
by null.XxqpxX
すいません、エラー内容なのですが、ソースファイルを上手く開けていない感じです。

Re: directXについて

Posted: 2015年6月07日(日) 23:57
by Ryo
『感じです』という感覚的な情報よりも、
表示されるエラーの内容をコピー&ペーストしてはったほうがいいです

Re: directXについて

Posted: 2015年6月08日(月) 00:11
by null.XxqpxX
エラーの内容はこれです。

エラー 1 error C2146: 構文エラー : ';' が、識別子 'WinMain' の前に必要です。

エラー 2 error C2065: 'HINSTANCE' : 定義されていない識別子です。
エラー 3 error C2146: 構文エラー : ')' が、識別子 'hInstance' の前に必要です。
エラー 4 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

エラー 5 error C2059: 構文エラー : ')'

エラー 6 error C2143: 構文エラー : ';' が '{' の前にありません。2013\projects\gameprog\gameprog\test.cpp 4 1 GameProg

エラー 7 error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)

8 IntelliSense: ';' が必要です

9 IntelliSense: 明示的な型がありません ('int' が想定されます)
10 IntelliSense: 宣言が必要です

11 IntelliSense: 宣言が必要です

Re: directXについて

Posted: 2015年6月08日(月) 00:12
by null.XxqpxX
>>14
すいません、いま貼りました。

Re: directXについて

Posted: 2015年6月08日(月) 00:17
by みけCAT
何らかの原因でwindows.hが取り込まれていない感じですが…どうしてでしょう…?

Re: directXについて

Posted: 2015年6月08日(月) 00:19
by null.XxqpxX
>>17
どうやればいいのでしょうか・・・

Re: directXについて

Posted: 2015年6月08日(月) 00:34
by null.XxqpxX
とりあえず最初からやってみます

Re: directXについて

Posted: 2015年6月08日(月) 00:38
by たいちう
> >>17
> どうやればいいのでしょうか・・・

先頭に #include <windows.h> を追加するとどうなりますか?

Re: directXについて

Posted: 2015年6月08日(月) 01:14
by null.XxqpxX
>>20
先頭に #include <windows.h> を追加するとどうなりますか?

インクルードのところにエラーです

Re: directXについて

Posted: 2015年6月08日(月) 01:35
by たいちう
No.14で指摘されているように、どんなエラーか正確に書かないと。
No.15のエラーは、windows.hがインクルードされていないから発生しています。
プロジェクトを新しく作って、下のコードをビルドすることはできますか?

コード:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    return 0;
}

Re: directXについて

Posted: 2015年6月08日(月) 16:23
by null.XxqpxX
>>22
windows.hが開けませんってなります、、、

Re: directXについて

Posted: 2015年6月08日(月) 16:34
by プラム
それ以前に
エラー 1 error C2146: 構文エラー : ';' が、識別子 'WinMain' の前に必要です。
エラー 2 error C2065: 'HINSTANCE' : 定義されていない識別子です。               ←これはHINSTANCEという値が定義されていないということです。

エラー 3 error C2146: 構文エラー : ')' が、識別子 'hInstance' の前に必要です。
エラー 4 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
エラー 5 error C2059: 構文エラー : ')'
エラー 6 error C2143: 構文エラー : ';' が '{' の前にありません。2013\projects\gameprog\gameprog\test.cpp 4 1 GameProg
8 IntelliSense: ';' が必要です
↑これは「;」や、「,」がないという意味なので、定義文の後に「;」などを書き忘れていませんか?

Re: directXについて

Posted: 2015年6月08日(月) 16:50
by null.XxqpxX
>>24
問題ありません。
逆に追加する場所がないです。。。

Re: directXについて

Posted: 2015年6月08日(月) 16:51
by null.XxqpxX
もしかしてこれってDxLibの中身のやつとプロジェクトのやつ同じファイルパスに入れないと動かないとかそんな感じかな。。。。

Re: directXについて

Posted: 2015年6月08日(月) 16:52
by null.XxqpxX
Windows.hは何回やっても開けなかったです。。。

Re: directXについて

Posted: 2015年6月08日(月) 16:54
by Aozora0630
null.XxqpxX さんが書きました:もしかしてこれってDxLibの中身のやつとプロジェクトのやつ同じファイルパスに入れないと動かないとかそんな感じかな。。。。
え、入れてないんですか?
DxLibはプロジェクトのカレントディレクトリに入れないといけません。
他のディレクトリに入れるには少し設定を弄らないといけないので・・・・。
オフトピック
最初のコードって私の奴じゃない?

Re: directXについて

Posted: 2015年6月08日(月) 16:55
by Aozora0630
っていうか、VCはあまり知りませんが、カレントディレクトリに無いのに
#include "DxLib.h"でエラーが出ずに呼び出せるんですか・・・・。
オフトピック
私は/で大丈夫と知ってても\\を使ってしまうんだよなー。
終わった話題を掘り返してすみません。

Re: directXについて

Posted: 2015年6月08日(月) 17:13
by みけCAT
公式のDXライブラリのセットアップ方法です。
http://homepage2.nifty.com/natupaji/DxL ... press.html

Re: directXについて

Posted: 2015年6月08日(月) 19:58
by プラム
みけCATさんの参考(

Re: directXについて

Posted: 2015年6月08日(月) 20:49
by Aozora0630
おお、VCでは違うのか・・・。

すみません。私の前の奴は無視してください。

Re: directXについて

Posted: 2015年6月09日(火) 18:14
by null.XxqpxX
>>28
そうだったんですか・・・
それはすみませんでした
ネットでサンプルコードを探してたらあったので・・・

Re: directXについて

Posted: 2015年6月09日(火) 18:23
by null.XxqpxX
先ほど無事にできました!

namachan10777様
ハルルン様
みけCAT様
Ryo様
たいちう様
Aozora0630様

ご返事ありがとうございました!

Re: directXについて

Posted: 2015年6月09日(火) 19:28
by Aozora0630
解決チェックよろ