BCCDeveloperからVisualC++に乗り換えたのですが

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
MoNoQLoREATOR
記事: 284
登録日時: 9年前
住所: 東京

BCCDeveloperからVisualC++に乗り換えたのですが

#1

投稿記事 by MoNoQLoREATOR » 9年前

私は以前
統合開発環境:BCC Developer
コンパイラ:borland C++ compiler
を使用していたのですが、
ついさっき Visual C++ 2008 に乗り換えてみました。
「14歳からはじめるC言語オンラインゲームプログラミング教室」という本にVC++の設定方法が書かれていたので、それに従って設定してみました。さっそく以前作っていたプログラムをビルドして実行してみようと思ったのですが、わけのわからないエラーが出ました。もちろんborlandの時は正常にコンパイル、正常に動作しました。

以下エラー文

コード:

------ ビルド開始: プロジェクト: GetAllFilePass, 構成: Debug Win32 ------
コンパイルしています...
GetAllFilePass.cpp
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(14) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 'sprintf' の宣言を確認してください。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(15) : error C2664: 'FindFirstFileW' : 1 番目の引数を 'char [260]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(22) : error C2664: 'strcmp' : 1 番目の引数を 'WCHAR [260]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照)
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(22) : error C2664: 'strcmp' : 1 番目の引数を 'WCHAR [260]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照)
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(31) : error C2664: 'strcat' : 2 番目の引数を 'WCHAR [260]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照)
        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(38) : error C2679: 二項演算子 '+=' : 型 'WCHAR [260]' の右オペランドを扱う演算子が見つかりません (または変換できません)。
        c:\program files\microsoft visual studio 9.0\vc\include\xstring(929): 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator +=(const std::basic_string<_Elem,_Traits,_Ax> &)' の可能性があります。
        with
        [
            _Elem=char,
            _Traits=std::char_traits<char>,
            _Ax=std::allocator<char>
        ]
        c:\program files\microsoft visual studio 9.0\vc\include\xstring(934): または 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator +=(const _Elem *)'
        with
        [
            _Elem=char,
            _Traits=std::char_traits<char>,
            _Ax=std::allocator<char>
        ]
        c:\program files\microsoft visual studio 9.0\vc\include\xstring(939): または 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator +=(_Elem)'
        with
        [
            _Elem=char,
            _Traits=std::char_traits<char>,
            _Ax=std::allocator<char>
        ]
        引数リスト '(std::string, WCHAR [260])' を一致させようとしているとき
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(53) : warning C4018: '<' : signed と unsigned の数値を比較しようとしました。
ビルドログは "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\GetAllFilePass\Debug\BuildLog.htm" に保存されました。
GetAllFilePass - エラー 5、警告 2
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
以下ソースコード

コード:

#include <windows.h>
#include <string.h>
#include <string>
#include <vector>
#include <stdio.h>

using namespace std;

void ListUp(const char *direName, vector<string> &fileNs, bool searchFlag){
	WIN32_FIND_DATA fData;	//ファイル又はフォルダの情報がここに格納される
	HANDLE fHand;		//検索時のハンドルを格納
	{
	char seDirName[_MAX_PATH];			//一時的にフォルダ名を記憶しておくだけ
	sprintf(seDirName,"%s\\*",direName);	//フォルダ名に\\ワイルドカードを連結
	fHand = FindFirstFile(seDirName, &fData);	//検索を行い、ハンドルを取得
	}
    
	//ファイル又はフォルダがみつかった ならば
	if(fHand != INVALID_HANDLE_VALUE){
		do{
			// '.'や'..'以外だった ならば
			if(strcmp(fData.cFileName, ".") && strcmp(fData.cFileName, "..") ) {
				//見つかったのがフォルダだった ならば
				if(fData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
					//フォルダ以下全検索に設定されている ならば サブフォルダの処理
					if(searchFlag){
						char sFindSubDir[_MAX_PATH];    //フォルダ名格納用
                        
						strcpy(sFindSubDir, direName);			//検索フォルダのフルパス文字列をコピー
						strcat(sFindSubDir, "\\");						//文字列に\\を追加
						strcat(sFindSubDir, fData.cFileName);	//検索結果のフォルダ名を文字列に追加
						ListUp(sFindSubDir, fileNs, 1);				// 再帰呼び出し
					}
				} else {
				// ファイルのとき
					string str = direName;
					str += "\\";
					str += fData.cFileName;
					fileNs.push_back(str);  //ファイル名を記憶
				}
			}
		} while(FindNextFile(fHand, &fData));
		
		FindClose(fHand);   //検索に使用したデータを破棄
	}
}

int GetAllFilePass(const char *direName, const char *extens, vector<string> &filePs, bool searchFlag){
	vector<string> foundFNs;
	
	ListUp(direName, foundFNs, searchFlag);
	
	for(int i=0;i<foundFNs.size();i++){
		//i番目の文字列の最後の"."以降の文字列を取得
		const char *exten = strrchr(foundFNs[i].c_str(), '.');
		//その次の文字列がextenに含まれるか調べる
		//含まれていたらfileNs.push_back()で追加する
		if( strstr(  extens, exten  )!=NULL ) filePs.push_back(foundFNs[i]);
	}
	
	return filePs.size();
}

int main(){
	vector<string> fns;
	
	int num = GetAllFilePass("C:\\Documents and Settings\\Administrator\\デスクトップ", ".mp3.flv.wav", fns, 1);
	
	//for(int i=0;i<num;i++) printf("%s\n", fns[i].c_str());
	printf("\n%d", num);
}

また、VC++では行番号が表示されないのですが、これは仕様でしょうか。行番号を表示させることはできないのでしょうか。

よろしくお願い致します。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 10年前
住所: 東海地方
連絡を取る:

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#2

投稿記事 by softya(ソフト屋) » 9年前

プロジェクトの設定でマルチバイト文字になっていないと思われます。

プロジェクト→xxxのプロパティ→構成プロパティ→文字セット→マルチバイト文字を使用する。

で設定してください。

行番号は、

ツール→オプション→テキストエディタ→C/C++→全般にある行番号のチェックを入れてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
へろりくしょん
記事: 92
登録日時: 10年前
住所: 福岡

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#3

投稿記事 by へろりくしょん » 9年前

えー 1コ1コ行きます。

c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(14) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 'sprintf' の宣言を確認してください。

これは、書いてある通りですね。 この関数はセキュアじゃないから、 sprintf_s() を使ってね。 じゃなかったら、_CRT_SECURE_NO_WARNINGS を使ってね。 って事です。
_CRT_SECURE_NO_WARNINGS を使う場合は、ファイルの先頭で、#define するか、プロジェクト全体に適用したい場合は、プロパティのプリプロセッサってとこで設定できます。

c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(15) : error C2664: 'FindFirstFileW' : 1 番目の引数を 'char [260]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

BCC32 がどうなのかは知りませんが、C++では、型の扱いが非常に厳しくなっています。 この場合はキャストが必要です。
ただ今回の場合は、文字セットがユニコードになっているからだと思われます。
Win32API のいくつかは、Unicode型の環境でも非Unicode型の環境でもソースコードレベルで、で互換性を保てるように、Unicode用とASCII コード用の2種類が用意されています。
今回の FindFirstFile() 関数もそのうちの一つで、実際に呼び出されている FindFirstFileW() 関数は、Unicode用です。
第一引数の型は、LPCWSTR となっており、char* 型を渡してはいけません。

char* 型で処理したい場合は、FindFirstFileA() 関数を使用します。 この場合は、プロパティの文字セットをマルチバイトに設定します。
両方に対応したい場合は、TCHAR 型を使用するといいでしょ。

c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(22) : error C2664: 'strcmp' : 1 番目の引数を 'WCHAR [260]' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

これも同じですね。 文字セットを Unicode にした場合と、マルチバイトに設定した場合では、WIN32_FIND_DATA の型の定義が違います。
Unicode 環境下では、_WIN32_FIND_DATAW 。 マルチバイト環境下では、_WIN32_FIND_DATAA に typedef されます。


c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(38) : error C2679: 二項演算子 '+=' : 型 'WCHAR [260]' の右オペランドを扱う演算子が見つかりません (または変換できません)。
c:\program files\microsoft visual studio 9.0\vc\include\xstring(929): 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator +=(const std::basic_string<_Elem,_Traits,_Ax> &)' の可能性があります。

std::string は次のように typedef されています。
typedef basic_string<char, char_traits<char>, allocator<char> >string;
std::string で扱えるのは、char 型です。
今回の、direName "\\" は、それぞれ const char * 型ですが、fData.cFileName は wchar_t 型です。 型が違いますね。

wchar_t 型を扱うには、std::wstring を利用します。


c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(53) : warning C4018: '<' : signed と unsigned の数値を比較しようとしました。

これは、そのまんまですね。 BCC32 では言ってくれないのでしょうか。 アレもずいぶんおしゃべりなコンパイラだと思ってましたが。

ちなみに、行番号はツールのオプションから設定できますよ。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 9年前
住所: 東京

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#4

投稿記事 by MoNoQLoREATOR » 9年前

返信ありがとうございます。

文字セットの設定のところで、「適用」ボタンを押していなかったのが原因だったようです。エラーはでなくなりました。(警告は出ましたが)
しかし、ついでにランタイムライブラリの設定をすると、また理解不能なエラーが出るようになりました。

以下エラー文

コード:

------ ビルド開始: プロジェクト: GetAllFilePass, 構成: Debug Win32 ------
コンパイルしています...
GetAllFilePass.cpp
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(29) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : 'strcpy' の宣言を確認してください。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(30) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\string.h(79) : 'strcat' の宣言を確認してください。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(31) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\string.h(79) : 'strcat' の宣言を確認してください。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(53) : warning C4018: '<' : signed と unsigned の数値を比較しようとしました。
リンクしています...
GetAllFilePass.obj : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator+=(char const *)" (??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: __thiscall std::_Container_base_secure::~_Container_base_secure(void)" (??1_Container_base_secure@std@@QAE@XZ) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: void __thiscall std::_Container_base_secure::_Orphan_all(void)const " (?_Orphan_all@_Container_base_secure@std@@QBEXXZ) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: __thiscall std::_Container_base_secure::_Container_base_secure(void)" (??0_Container_base_secure@std@@QAE@XZ) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
GetAllFilePass.obj : error LNK2005: "public: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::swap(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
ビルドログは "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\GetAllFilePass\Debug\BuildLog.htm" に保存されました。
GetAllFilePass - エラー 10、警告 4
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
ソースコードはsprintf_s()の部分以外変えていません。

ちなみに設定は次の通りです。

Debug構成の文字セット・・・マルチバイト文字セットを使用
Debug構成のランタイムライブラリ・・・マルチスレッドデバッグ
Release構成の文字セット・・・マルチバイト文字セットを使用
Release構成のランタイムライブラリ・・・マルチスレッド


よろしくお願い致します。

アバター
a5ua
記事: 199
登録日時: 10年前

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#5

投稿記事 by a5ua » 9年前

マルチスレッド DLL (/MD)
マルチスレッド デバッグ DLL (/MDd)
にするとどうですか?

アバター
MoNoQLoREATOR
記事: 284
登録日時: 9年前
住所: 東京

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#6

投稿記事 by MoNoQLoREATOR » 9年前

返信ありがとうございます。
エラーが出なくなりました。
しかし、警告は依然として出たままです。一体何がだめだというのでしょうか。

コード:

------ ビルド開始: プロジェクト: GetAllFilePass, 構成: Debug Win32 ------
コンパイルしています...
GetAllFilePass.cpp
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(29) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : 'strcpy' の宣言を確認してください。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(30) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\string.h(79) : 'strcat' の宣言を確認してください。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(31) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        c:\program files\microsoft visual studio 9.0\vc\include\string.h(79) : 'strcat' の宣言を確認してください。
c:\documents and settings\administrator\my documents\visual studio 2008\projects\getallfilepass\getallfilepass.cpp(53) : warning C4018: '<' : signed と unsigned の数値を比較しようとしました。
リンクしています...
マニフェストを埋め込んでいます...
ビルドログは "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\GetAllFilePass\Debug\BuildLog.htm" に保存されました。
GetAllFilePass - エラー 0、警告 4
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 10年前
住所: 東海地方
連絡を取る:

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#7

投稿記事 by softya(ソフト屋) » 9年前

この警告は、マイクロソフトの都合です。
strcpyよりもセキュアなstrcpy_sを作ったから使ってね。って事なのですが、これがC言語の規格外の関数なので使わなくても良いです。

#define _CRT_SECURE_NO_DEPRECATE

と先頭に書くと警告は出なくなります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

non
記事: 1097
登録日時: 9年前

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#8

投稿記事 by non » 9年前

C4996 や C4018 で検索すれば情報が得られます。
non

アバター
a5ua
記事: 199
登録日時: 10年前

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#9

投稿記事 by a5ua » 9年前

strcpyやstrcatなどは、バッファオーバーランの危険性があるので、
出力先のバッファサイズを指定できるバージョンがVisual Studioでは用意されており、
そちらを使うようにコンパイラが警告を出しているのです。

コード:

strcpy(sFindSubDir, direName);          //検索フォルダのフルパス文字列をコピー
例えば、この部分は、

コード:

strcpy_s(sFindSubDir, _MAX_PATH, direName);          //検索フォルダのフルパス文字列をコピー
このように使います。

コード:

warning C4018: '<' : signed と unsigned の数値を比較しようとしました。
この警告については、

コード:

for(int i=0;i<foundFNs.size();i++){
この部分を、

コード:

for(size_t i=0;i<foundFNs.size();i++){
とでもするか、iteratorによるループに書き直すといいでしょう。


ところで、C++を使うのでしたら、C形式の文字列(char配列)を使わずに、すべてstd::stringを使うようにしたほうがいいと思います。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 9年前
住所: 東京

Re: BCCDeveloperからVisualC++に乗り換えたのですが

#10

投稿記事 by MoNoQLoREATOR » 9年前

ありがとうございます!
見事エラーも警告も出なくなりました。

コード:

------ ビルド開始: プロジェクト: GetAllFilePass, 構成: Debug Win32 ------
コンパイルしています...
GetAllFilePass.cpp
リンクしています...
マニフェストを埋め込んでいます...
ビルドログは "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\GetAllFilePass\Debug\BuildLog.htm" に保存されました。
GetAllFilePass - エラー 0、警告 0
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
すっきりしました。

本当にありがとうございましたm(_ _)m

閉鎖

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