ページ 11

コンパイルエラー

Posted: 2012年7月05日(木) 20:33
by オラクル
VC++2010とDXライブラリでゲームを作っているのですが
ファイル読み込みのクラスでコンパイルエラーがでました

コード:


// FileHandling.h

#ifndef FE_FILEHANDLING_H
#define FE_FILEHANDLING_H

#include <stdio.h>
#include "common.h"

/********************************************************************************
*Class FileHandling

*ファイルを取り扱う

*メソッドはファイルのパスと読み込み結果を格納するものを引数としてもらい
*ファイルの読み込みと格納を行う

*********************************************************************************/
class FileHandling{

	public:
		// ファイルの読み込み
		void File_read( const char *FileName, VECTOR *Array[]  );

}

#endif // FE_FILEHANDLING_H

// FileHandling.cpp

#include "FileHandling.h"

void FileHandling::File_read( const char *FileName, VECTOR *Array[] ){
	
	FILE* fp;
	float x,y,z;
	int i = 0;
	fp = fopen(FileName, "r");
	if( fp == NULL ){
		MessageBox( NULL, "ファイル読み込み失敗", "DXライブラリ" , MB_OK );
	}
	while( fscanf(fp, "%f %f %f", x, y, z) != EOF ){
		Array[i]->x = x;
		Array[i]->y = y;
		Array[i]->z = z;
		i++;
	}

	fclose(fp);

}
error C2628: 'FileHandling' の後に 'void' を続けて記述できません(セミコロン ';' で区切ってあるか確認してください)。
error C2556: 'FileHandling FileHandling::File_read(const char *,DxLib::VECTOR *[])' : オーバーロード関数は、'void FileHandling::File_read(const char *,DxLib::VECTOR *[])' と戻り値の型のみが異なります。
'FileHandling::File_read' の宣言を確認してください。
error C2371: 'FileHandling::File_read' : 再定義されています。異なる基本型です。
'FileHandling::File_read' の宣言を確認してください。

オーバーロードした記憶はありませんがとりあえずソリューション全体で”File_read”で検索をかけましたが
上記のヘッダファイルとCPPファイル以外かかりませんでした
インクルードガードもちゃんとかけているつもりなんですが……

原因がわかる方がいましたら教えて頂けると助かります
ただの誤字、脱字が原因だったらすいません

Re: コンパイルエラー

Posted: 2012年7月05日(木) 20:37
by h2so5
クラス定義の後にセミコロンがありません。

Re: コンパイルエラー

Posted: 2012年7月05日(木) 20:42
by nil
すでに指摘がございましたが、クラス定義では、
class A{~~~};とセミコロンを打たねばなりません

Re: コンパイルエラー

Posted: 2012年7月05日(木) 21:50
by オラクル
クラスの書き方がちゃんと頭に入っていませんね、すいません

ご指摘どうりセミコロンをつけて上記のエラーは消えたのですがまた何か出力されました
エラーというよりは警告のようです

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.


この関数や変数は、安全でないかもしれません。代わりにfopen_sの使用を検討してください。廃止を無効にするには、_CRT_SECURE_NO_WARNINGSを使用しています。詳細についてはオンラインヘルプを参照してください。

これはどうすればよいでしょうか?

Re: コンパイルエラー

Posted: 2012年7月05日(木) 22:47
by nil
マイクロソフトがその関数は古くて危ないからうちのを使えと言っているんですね
別段無視をしても特に問題はないです

鬱陶しいなら
#pragma warning(disable: 警告の番号 )
で消えますよ

Re: コンパイルエラー

Posted: 2012年7月06日(金) 17:36
by オラクル
わかりました
答えてくださりありがとうございます