• ベストアンサー

Visual Studio 2008 Professional EditionでのMFCの使用法

4月から社会人となる、情報系学生です。 勤務先で必要となるため、Visual Studio + MFCでのWindowsアプリ作成を勉強しています。 環境はVS 2008 Professional Edition(90日限定評価版)でVC++2008、参考書は「ゼロから学ぶVisual C++」です。 最初のサンプルでは、 ・シングル ドキュメント インターフェイスで、 で、メニューをクリックすると「Hello」というメッセージボックスが出るプログラムを組むのですが、いきなりエラーが6つも出てしまいます。 気になる点としては、参考書ではVisual C++2003を使用して説明されているのですが、こちらの環境が2008であることぐらいで、その他の原因は皆目検討つきません。 原因がわかりそうな方がいらっしゃいましたら、何卒ご教授願います。 エラーメッセージは下記の通りです。(Worning含む) c:\program files\microsoft visual studio 9.0\vc\include\cstringt.h(267) : warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_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\atlcomcli.h(300) : error C2299: 'ATL::CComPtr<T>::operator =' : 動作の変更: 明示的な特殊化には、コピー コンストラクタまたはコピー代入演算子を使用することはできません c:\program files\microsoft visual studio 9.0\vc\include\atlcomcli.h(304) : コンパイルされたクラスの テンプレート のインスタンス化 'ATL::CComPtr<T>' の参照を確認してください c:\program files\microsoft visual studio 9.0\vc\include\atlcomcli.h(300) : error C2299: 'ATL::CComPtr<T>::operator =' : 動作の変更: 明示的な特殊化には、コピー コンストラクタまたはコピー代入演算子を使用することはできません with [ T=IUnknown ] c:\program files\microsoft visual studio 9.0\vc\include\atlcomcli.h(508) : コンパイルされたクラスの テンプレート のインスタンス化 'ATL::CComPtr<T>' の参照を確認してください with [ T=IUnknown ] c:\program files\microsoft visual studio 9.0\vc\include\atlcomcli.h(300) : error C2299: 'ATL::CComPtr<T>::operator =' : 動作の変更: 明示的な特殊化には、コピー コンストラクタまたはコピー代入演算子を使用することはできません with [ T=IPersistStream ] c:\program files\microsoft visual studio 9.0\vc\include\atlcomcli.h(2215) : コンパイルされたクラスの テンプレート のインスタンス化 'ATL::CComPtr<T>' の参照を確認してください with [ T=IPersistStream ] c:\program files\microsoft visual studio 9.0\vc\include\atlcomtime.h(118) : error C2535: 'ATL::COleDateTime::COleDateTime(time_t) throw()' : メンバ関数は、既に定義または宣言されています。 c:\program files\microsoft visual studio 9.0\vc\include\atlcomtime.h(114) : 'ATL::COleDateTime::COleDateTime' の宣言を確認してください。 c:\program files\microsoft visual studio 9.0\vc\include\atlcomtime.h(176) : error C2535: 'ATL::COleDateTime &ATL::COleDateTime::operator =(const time_t &) throw()' : メンバ関数は、既に定義または宣言されています。 c:\program files\microsoft visual studio 9.0\vc\include\atlcomtime.h(172) : 'ATL::COleDateTime::operator =' の宣言を確認してください。 c:\program files\microsoft visual studio 9.0\vc\include\atlcomcli.h(300) : error C2299: 'ATL::CComPtr<T>::operator =' : 動作の変更: 明示的な特殊化には、コピー コンストラクタまたはコピー代入演算子を使用することはできません with [ T=IMalloc ] c:\program files\microsoft visual studio 9.0\vc\include\atlcommem.h(55) : コンパイルされたクラスの テンプレート のインスタンス化 'ATL::CComPtr<T>' の参照を確認してください with [ T=IMalloc ] ビルドログは "file://c:\Users\hisazun\Documents\Visual Studio 2008\Projects\MFCsample01\MFCsample01\Debug\BuildLog.htm" に保存されました。 MFCsample01 - エラー 6、警告 7

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.9

ハードディスクに余裕があるなら デーモンツールでマウントしたISOファイルの内容をすべてコピーしてからインストールしてみてはいかがでしょう stdafx.hの冒頭に #ifdef UNICODE #error #endif と記述して見るとどうなりますか C1189のコンパイルエラーになるのであれば 文字セットの設定が疑われます また冒頭で #ifdef UNICODE #undef UNICODE #undef _UNICODE #define MBCS #define _MBCS #endif と記述した場合はどうでしょう リンカーエラーLNK2019が報告されるだけでしょうか?

hisazun
質問者

お礼

返信が遅くなり、申し訳ありません。 現在、ご指示頂いた内容を実践してみようと、 再度アンインストールをかけております。 ハードディスクには多少の余裕はありますので、ISOから全てコピーし、Setupを実行してみます。 有難うございました。 結果は補足欄でご報告させて頂きます。宜しくお願い致します。

hisazun
質問者

補足

ハードディスクにISOファイルの内容をコピーし、 インストールし直してみましたが、前回と同じでした。 また、stdafx.hの冒頭にご指示頂いた内容を記述してみましたが、 最初の#ifdef ~ #endif までの場合に、C1189は出ませんでした。 次の場合にも、LNK2019は出ませんでした。 いずれの場合にも、質問欄に書かせて頂いたエラー6個にWarning7個が出るのみでした。

その他の回答 (8)

回答No.8

駄目でしたか!うまくいくと思っていましたが、残念です。 ちなみにエラーは前回と全く同じ内容ですか? 確かにデーモンツールの不具合も否めませんね。最新版を利用して頂くようにお願いします。ちなみに私はDaemonToolsLiteでVS2008Proを正常インストールし、現在に至ります。 私が一番気になるのは、ウィルス駆除用のソフトか、スパイウェア除去ソフトが横取りして、インストールに失敗しているのかと疑っています。 何かソフトをインストールされていますでしょうか。 それと、OSはXPですか、VISTAですか。念のため教えて下さい。

hisazun
質問者

お礼

御返信有難うございます。 エラーは前回と同じ内容で、数も同じでした。 デーモンツールは先のMicrosoftのリンク先から、最新版をダウンロードして利用致しました。 ウィルス、スパイウェア対策ソフトはNorton Internet Security以外は入れていませんが、遅いのが嫌いで、作業時は基本的にオフにしております。 OSはVista Homeです。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.7

ISOイメージをマウントでなくて DVD-Rなどに焼いてインストールしたほうがいいように思います まさかとは思いますが デーモンツールが DVDなどの大容量のイメージへの対応不具合がある可能性も否定できません

hisazun
質問者

お礼

ご回答ありがとうございます。 当方のPC(Thinkpad R61e)には、DVD-ROMドライブしか付いていない為、Daemon Toolでのマウントを選択いたしました。 (下記サイトでもMicrosoft側で動作確認済みとなっていましたし・・・) http://technet.microsoft.com/ja-jp/subscriptions/cc837095.aspx#EHB 本日、インストールし直してみて、なおかつ下記のサンプルアプリケーションをビルドしてみましたが、やはりエラーでした。 http://msdn.microsoft.com/ja-jp/library/482ck6x8.aspx 余談になりますが、学校の古いPCにはVisual C++6.0がインストールされています。こちらのシンプルな機能が羨ましく思いました(笑)

回答No.6

VC++2008ExpressEditionにはMFCは含まれていないので、あまり関係ないと思いますが、やはり一度入れなおした方が良さそうですね。 入れなおしても駄目であれば、また教えてください。 また、うまくいった場合もお手数ですが「うまくいった!!」と教えて下さいね!hisazunさんが勉強を進められるようになった!と私も嬉しいので笑 インストール作業はかなり時間がかかる(特にVSの場合は)ので、面倒くさいですが、成功するまでお付き合いさせて下さい。 それでは。

hisazun
質問者

お礼

本日、インストールし直してみてやはりダメでしたので、Team Suiteの評価版も入れてみましたが、やはり同じ結果でした。 Microsoft提供の下記サンプルでもエラーとなりましたので、やはり環境(ハードディスク等も含め)のせいだと思われます。 http://msdn.microsoft.com/ja-jp/library/482ck6x8.aspx もう少し色々やってみて、再度、補足欄等でご報告させて頂きます。

hisazun
質問者

補足

有難うございます。 現在関係しそうなものを軒並みアンインストールしております。 この作業が完了後に再度インストールしてみますので、結果がどちらであれ、ご報告させていただきます。

回答No.5

hisazunさん、とても勉強熱心で素晴らしいと思います。Try&Errorの繰り返しで大変お疲れかもしれませんが、あと一息頑張って下さい。 ご質問の内容とredfox63さんとのやりとりを一通り確認させて頂きました。早速ですが、私から出来る限りアドバイスさせて頂きたいと思います。 まず、hisazunさんが作成されたプロジェクトの手順に従って、私の方でも同じ手順でプロジェクトを作成してみました。(私はVS2008Pro版を使っています) 試用版ではありませんが、恐らく製品版と同じだと思うので、この辺りは問題ないと思います。 私の方ではプロジェクトを作成した後、ビルドを実行し、MFCsample01.exeを起動することが出来ました。hisazunさんの内容だと、ここで既にコンパイルエラーがたくさん出ているのですね。 続けて、Helloのメッセージが出るようにコードを追加し、実行してみると、メニューからHelloを選ぶと、"Hello"とメッセージが表示されました。 以上を踏まえて、これは私の推測ですが、hisazunさんが開発環境の構築に失敗されているのだと思いました。 確認させて頂きたいのですが、VS2008Pro試用版はどのようにインストールされたでしょうか。 (1)下記ページからISOイメージをダウンロードした後、空のDVDにISOイメージを書き込みましたか。それとも、DVDイメージを別のソフトでマウントし、それを実行されたでしょうか。 http://www.microsoft.com/downloads/details.aspx?familyid=83C3A1EC-ED72-4A79-8961-25635DB0192B&displaylang=ja (2)もしDVDメディアに書き込まれた場合、そのDVDは劣化などはしていないでしょうか。古いDVDメディアではありませんか。 (3)インストール途中にエラーになったり、何か怪しげな確認メッセージを強行突破されませんでしたか。 (4)インストール途中に別のインストーラーなどを実行されたりしていませんでしたか。 (5)最近ハードディスクの調子がおかしいことはありませんでしたか。 大変ご面倒だと思うのですが、今一度アンインストールして上記確認事項も踏まえた上で、再インストールされる方が良いと思います。 参考までに、当方VC++開発暦8年目です。

hisazun
質問者

お礼

ご回答ありがとうございます。 インストールはISOイメージをダウンロード後、DAEMON Tool Liteにてマウントして行いました。 インストール中は他の操作は行いませんでしたが、私も環境構築の失敗の様な気がします。 ハードディスクは特に問題無いと思います。 VS2008Proのインストール前にVC++2008ExpressEditionを使用していたので、そちらのインクルードを読みに行ってるのでは?なども疑ってみました。 今一度、全てをアンインストールし、VS2008Proをインストールし直してみようと思います。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

MFCのスケルトンだけならOKなのでしょうか? UnicodeモードでOKなのか確認しましょう マルチバイトに変更してどうか 文字列を _T("ここに文字列"); といった具合の _Tマクロでくくってみてどうか など原因となりそうなものをつぶしていって見ましょう

hisazun
質問者

お礼

お礼が遅くなり申し訳ありません。 エラーが6個のときに、一つ一つ原因を潰していくことも 考えましたが、現在は165個出ている為、その案は諦めようと考えています・・・。 satoru_maeさんにアドバイス頂いた通り、一度インストールし直して見ようと思います。 ご回答有難うございました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

MFCでない場合はエラーや警告の類は出ないのでしょうか? Win32SDKのコンソールアプリとかですが ・・・ 単純な Hello.cとかで試してみましょう

hisazun
質問者

お礼

redfox63様 何度もご回答下さり、誠に有難うございます。 新規作成→プロジェクト→Win32コンソールアプリケーション による、"Hello World!\n"プログラムは、DOS窓で開きました。 新規作成→プロジェクト→Win32プロジェクト→デバッグ による、空ウィンドウの表示は成功致しました。 その他、「猫でもわかるWindowsプログラミング」という本も参考書として 使用しているのですが、そちらのサンプルプロジェクトもデバッグ可能でした。(WindowsAPIによるプログラムでした。)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

マルチバイト文字セットを使うの設定が正しくされなかったのではないでしょうか? プロジェクト > プロパティ > 構成プロパティ > 全般で 『文字セット』が『マルチバイト文字セットを使用する』になっているか確認してみましょう

hisazun
質問者

お礼

ご回答有難うございます。 確認してみましたが、ご指摘の点は大丈夫でした。 いてもたってもいられず、昨日の夜中にSP1をインストールしてみました。 インストール後、再び新規プロジェクトを生成し、いきなりビルドをかけて みましたが、エラー165個で警告11個でした。 もうどうしていいやらわかりません。 プロジェクトの概要は ・シングルドキュメントインターフェース ・データベース、複合ドキュメントのサポートなし です。 生成されたソースファイルは、 ChildView.cpp、MainFrm.cpp、stdafx.cpp、(プロジェクト名).cppです。 自動生成された(プロジェクト名).cppの内容は補足にコピーさせて頂きます。 何卒宜しくお願い致します。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

警告に関しては バッファオーバーランなどに対するもののように思います 'wcscpy'つまりUnicode版のstrcpyですが これをstrcpy_sなどの_s付の関数に置換した方が安全ですよといったものでしょう 引数なども変更されていますので変更の際には確認しましょう エラーのほうはこの文面からでは分りかねます たぶん『Hello』を表示させるために使ったオブジェクトを間違えたのだろうと思います 実際に書いたコード部分を提示なさったほうが的確な回答が得られるだろうと思います

hisazun
質問者

お礼

早速のご回答、誠に有難うございます。 実際に書いたコードですが、実はほとんどコーディングはしておらず、 1.プロジェクトの新規作成で、"MFCアプリケーション"を選択 2.ウィザードで"シングルドキュメント"を選び、"UNICODE ライブラリを使用する"チェックを外して[完了]ボタンを押下 3.リソースエディタで[テスト(&T)]メニューを追加し、サブメニューに[&Hello]を入力後、IDを[ID_TEST_HELLO]に設定 4.[イベントハンドラの追加]から、[CMFCsample01View]クラスを選択し、[追加して編集]ボタンをクリック 5.void CMFCsample01View::OnTestHello(){}内に以下のコードを記述 AfxMessageBox( "Hello" ); 以上です。 どうか宜しくお願い致します。

hisazun
質問者

補足

自動生成された(プロジェクト名 = MFCsample01).cppの内容です。 宜しくお願いします。 ----------------------以下、ファイル内容------------------------- // MFCsample01.cpp : アプリケーションのクラス動作を定義します。 // #include "stdafx.h" #include "afxwinappex.h" #include "MFCsample01.h" #include "MainFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMFCsample01App BEGIN_MESSAGE_MAP(CMFCsample01App, CWinAppEx) ON_COMMAND(ID_APP_ABOUT, &CMFCsample01App::OnAppAbout) END_MESSAGE_MAP() // CMFCsample01App コンストラクション CMFCsample01App::CMFCsample01App() { m_bHiColorIcons = TRUE; // TODO: この位置に構築用コードを追加してください。 // ここに InitInstance 中の重要な初期化処理をすべて記述してください。 } // 唯一の CMFCsample01App オブジェクトです。 CMFCsample01App theApp; // CMFCsample01App 初期化 BOOL CMFCsample01App::InitInstance() { CWinAppEx::InitInstance(); // 標準初期化 // これらの機能を使わずに最終的な実行可能ファイルの // サイズを縮小したい場合は、以下から不要な初期化 // ルーチンを削除してください。 // 設定が格納されているレジストリ キーを変更します。 // TODO: 会社名または組織名などの適切な文字列に // この文字列を変更してください。 SetRegistryKey(_T("アプリケーション ウィザードで生成されたローカル アプリケーション")); InitContextMenuManager(); InitKeyboardManager(); InitTooltipManager(); CMFCToolTipInfo ttParams; ttParams.m_bVislManagerTheme = TRUE; theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams); // メイン ウィンドウを作成するとき、このコードは新しいフレーム ウィンドウ オブジェクトを作成し、 // それをアプリケーションのメイン ウィンドウにセットします CMainFrame* pFrame = new CMainFrame; if (!pFrame) return FALSE; m_pMainWnd = pFrame; // フレームをリソースからロードして作成します pFrame->LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, NULL); // メイン ウィンドウが初期化されたので、表示と更新を行います。 pFrame->ShowWindow(SW_SHOW); pFrame->UpdateWindow(); // 接尾辞が存在する場合にのみ DragAcceptFiles を呼び出してください。 // SDI アプリケーションでは、ProcessShellCommand の直後にこの呼び出しが発生しなければなりません。 return TRUE; } // CMFCsample01App メッセージ ハンドラ // アプリケーションのバージョン情報に使われる CAboutDlg ダイアログ class CAboutDlg : public CDialog { public: CAboutDlg(); // ダイアログ データ enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート // 実装 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // ダイアログを実行するためのアプリケーション コマンド void CMFCsample01App::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } // CMFCsample01App のカスタマイズされた読み込みメソッドと保存メソッド void CMFCsample01App::PreLoadState() { BOOL bNameValid; CString strName; bNameValid = strName.LoadString(IDS_EDIT_MENU); ASSERT(bNameValid); GetContextMenuManager()->AddMenu(strName, IDR_POPUP_EDIT); } void CMFCsample01App::LoadCustomState() { } void CMFCsample01App::SaveCustomState() { } // CMFCsample01App メッセージ ハンドラ ---------------------------ここまで--------------------------------

関連するQ&A

  • WiiYourself!をコンパイルできない

    WiiYourselfをVisualStadio2008(visual C++)でDemoフォルダのソースをコンパイルしようとしたのですがコンパイルエラーが100個以上出て失敗してしまいました(ソースは入手したときのままです)。エラーは以下のとおりです。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2065: '_In_' : 定義されていない識別子です。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2144: 構文エラー : '_EXCEPTION_RECORD' は ')' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2448: '_except_handler' : 関数の定義が間違っています。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(61) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(62) : error C2144: 構文エラー : '_CONTEXT' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(63) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(64) : error C2059: 構文エラー : ')' 1>c:\winddk\7600.16385.0\inc\api\windef.h(49) : error C2143: 構文エラー : ';' が '*' の前にありません。    ........ 開発環境は以下の通りです Windows vista WDM (インクルード(inc/api) ライブラリ(lib/wxp/i386)をvisual C++に設定している) WiiYourself1.01a とWiiYourself!_1.14b両方試しましたが同じ結果でした 原因をご存知の方がいらっしゃたらどうか書き込みお願いします。 よろしくお願いします。

  • OpenCVを使いたいのですが

    Visual C++ 2010にOpenCV2.4.3の導入し、設定を終えたのでプログラムをビルドさせるとエラーが吐き出され動作しません。 どなたか原因がわかる方はいらっしゃらないでしょうか? 【プログラム】 #include<stdio.h> #include<openCV2/opencv.hpp> #ifdef _DEBUG #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #else #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #endif //-------------------------------------------------------- //main int main(int argc,char* argv[]) { const char* szWndName="画像"; if(argc<2) { fprintf(stderr,"入力ファイル名を指定してください。\n"); return -1; } IplImage *img=cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR); if(img==NULL) return -1; cvNamedWindow(szWndName); cvShowImage(szWndName, img); cvWaitKey(0); cvDestroyAllWindows(); cvReleaseImage(&img); return 0; } 【ビルド後にでるエラーメッセージ】 ------ すべてのリビルド開始: プロジェクト: OpenCV, 構成: Debug Win32 ------ TEST02.c C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'abs' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'atexit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atof' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atoi' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atol' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'bsearch' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'calloc' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'div' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'exit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'free' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'getenv' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(25): error C2061: 構文エラー : 識別子 'labs' この後はエラー表記が続きます。

  • string.h内でエラー

    Visual C++ 2005でプログラムを組んでいます。 あるプログラムをビルドすると以下のようにstring.h内でエラーが大量に発生します。string.hをインクルードしないとエラーは出ないことからおそらくstring.hまわりの設定がおかしいとは思うのですがよくわかりません。 エラー 2 error C2144: 構文エラー : 'char' は ')' によって先行されなければなりません。c:\program files\microsoft visual studio 8\vc\include\string.h 136 エラー 3 error C2144: 構文エラー : 'char' は ';' によって先行されなければなりません。c:\program files\microsoft visual studio 8\vc\include\string.h 136 エラー 5 error C2143: 構文エラー : ';' が ',' の前にありません。c:\program files \ microsoftvisualstudio8 \ vc\ include\ string.h 136 宜しくお願いします。

  • 粒子法プログラムのビルドエラー(cstdlibのエラー)

    粒子法のMPS法のプログラミングをしているのですが、C++でmps.cをビルドをすると、cstdlibのエラーが出てビルドが出来ません。 mps.cの本文中にはエラーは無く、visual studio 9.0にあるcstdlibの構文エラーが出てしまいます。 最初から入っているライブラリファイルが間違っているとは思えません。 解決法を教えてください。お願いします。 ↓ mps.c内でcstdlibを使っている場所 ↓ #include <cstdlib> /* This line is necessary for C++ compiler. Remove this line in C compiler */ #include <stdio.h> #include <sys/types.h> #include <math.h> #include <string.h> ↓ エラーメッセージ ↓ 1>コンパイルしています... 1>mps.c 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':' 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':' 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':' 省略(21行目のエラーが23~32行目まで同じエラーが続く) 1>MPS3000 - エラー 62、警告 0 ========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========

  • mecabというアプリケーションをvisual studio 2010

    mecabというアプリケーションをvisual studio 2010を用いてC言語で実行したいのですが、どのようにすればいいのか分からず困ってます。 mecabの中にあるヘッダファイルは C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include に入れたらincludeしてくれたのですが、実行してみると 未解決の外部シンボル __imp__mecab_destroy が関数 _main で参照されました。 となってしまいうまくコンパイルできません。 ヘッダファイルのほかにどのファイルをどこに入れたらいいのか もしわかる方がいれば教えていただけますか?

  • windows10でVC6.0++のclを使いたい

    cl.exeの場所:C:\Program Files\Microsoft Visual Studio\VC98\Bin 環境変数INCLUDE設定:C:\Program Files\Microsoft Visual Studio\VC98\Include 環境変数LIB設定:C:\Program Files\Microsoft Visual Studio\VC98\Lib を登録したのですが、mspdb60.dllがないといわれました。 検索したらあるのですが、 どうすれば、Windows10でvc6.0++のCコンパイラを使えますか? 教えてくださいよろしくお願いします。

  • atan2 オーバーロード関数の呼び出しを解決することができません

    はじめまして。 超初心者のものです。 かなり古いMayaのプラグインのソースファイルをコンパイルすることになり、以下のようなエラーが出てどうにも解決することができません。 1>.\MayaMath.cpp(164) : error C2668: 'atan2' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照) 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(547): 'long double atan2(long double,long double)' の可能性があります。 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(499): または 'float atan2(float,float)' 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(110): または 'double atan2(double,double)' 大変申し訳ないのですが、こういった場合の回避の仕方 などご存じの方がいましたらよろしくお願いいたします。

  • VC++ iostreamの不具合(?)

    手強いVC++のエラーです(対処が効かない #include <iostream> int main () {cout << "ggrks"; return 0;} C2065エラー 'cout' : 定義されていない識別子です。 #include <iostream.h> int main () {cout << "Hello C++!"; return 0;} C1083エラー include ファイルを開けません。'iostream.h': No such file or directory iostream(拡張子無)はCドライブのプログラムファイル、Microsoft Visual Studio 9.0\VC\includeに存在してます。 パスは許可してあります。 ツール→VC++ディレクトリ→インクルードファイルで C:\Program Files\Microsoft Visual Studio 9.0\VC\include と C:\Program Files\Microsoft Visual Studio 9.0\VC\include\iostream もついでに。 インストが完全でなかったのかと思い、「修復又は再インストール」で再インストしましたが変わりません。 気分転換(?)に一回アンインストールしてから再インストール(あまり意味ありませんけど)しても同様です。 どうすれば良いでしょうか。ご教授願います。

  • visual studio2010の初期設定

    初歩的な内容ですが、意外と検索してみても方法が見つかりません。 visual studio2010を起動すると最初のカレントディレクトリの位置が C:\Program Files\Microsoft Visual Studio 10.0\VC> こういう感じなのを C:\に変更したいのですがどうしたらよいのでしょうか? 起動した瞬間から、上記のようにしたいのです。

  • iostream インクルード時に発生するエラー

    C++ の勉強をするためにVisualStudio2008にて下記コードをビルドしたのですが、エラーが発生してビルドが失敗しました。 ■ コード #include <iostream> using namespace std; int main() { std::cout << "Hello World !"; return 0; } ■ 操作 空のコンソールアプリケーションを作成し、ソースファイルに追加>新しい項目 にて "temp.cpp" を追加、コードを入力。その後 ビルド > ソリューションのビルド を実行。 ■ エラー(一部) >> 「説明」 列 warning C4985: 'strlen': 前の宣言に属性が存在しません。 error C2039: 'wmemcpy_s' : '`global namespace'' のメンバではありません。 error C3861: 'wmemcpy_s': 識別子が見つかりませんでした error C2039: 'wmemmove_s' : '`global namespace'' のメンバではありません。 error C3861: 'wmemmove_s': 識別子が見つかりませんでした error C2039: 'memcpy_s' : '`global namespace'' のメンバではありません。 error C3861: 'memcpy_s': 識別子が見つかりませんでした error C2039: 'memmove_s' : '`global namespace'' のメンバではありません。 >>対応する「ファイル」列 d:\program files\microsoft visual studio 9.0\vc\include\exception d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd d:\program files\microsoft visual studio 9.0\vc\include\iosfwd プロジェクトのプロパティやインストール時の構成などで何か問題があるのでしょうか。VisualStudio以外にはWindows SDK 、Windows SDK 6.0A、SQL Server2005などが導入されています。 再インストールするのもありかと思ったのですが、原因が分からないとまた同じ現象が発生しそうなため踏み切れません。 よろしくお願いします。