• ベストアンサー

コンパイルエラー

error C2143: 構文エラー : ';' が '__stdcall' の前にありません。 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません error C2440: '初期化中' : 'int (__stdcall *)(HWND,UINT,WPARAM,LPARAM)' から 'WNDPROC' に変換できません。 というエラーが出て困っています。 ご教授お願いします。 使用参考書:15歳からはじめる DirectX9 3Dゲームプログラミング教室 使用環境:Microsoft Visual C++ 2008 Express Edition SP1        DirectX SDK(dxsdk_feb2007)        Microsoft Platform SDK(たぶん最新版) ソース: http://gemuwotukurou.web.fc2.com/d3d/d3dtest.zip よりダウンロードしてください。

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

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.3

my3dlib.cpp LERSULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ){ ↓ LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ){ main.cpp INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) ↓ int WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, int ) 通常、WinMainは int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ); とプロトタイプ宣言されてる筈。ここを「INT」と説明している文献や資料は、見た事がない。INTがintとtypedefされてる限りは大丈夫だろうけど。

kerneru
質問者

お礼

エラーがすべて消えました。 参考書の方には、INTと大文字で書いてあったんですけどね。 プログラム関係の本って間違いが多いですね。 大変ありがとうございました。

その他の回答 (2)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

//ウィンドウプロシージャ LERSULT WINAPI MsgProc~~ のところがタイプミスのようです LERSULT ↓ LRESULT

kerneru
質問者

お礼

!! 私のタイプミスです。 ありがとうございます!!

  • BDTF
  • ベストアンサー率55% (38/68)
回答No.1

なんだかソースのダウンロードはできなかったのですが…… とりあえず一行目のエラーは単純に文末の ; が足りないのではないでしょうか。 エラーで指定される行の一つ前の行に無かったりするので注意です。

kerneru
質問者

補足

すみません ソースはこちらからお願いします。 http://gemuwotukurou.web.fc2.com/d3d/d3dtest.html

関連するQ&A

  • winnetwk.hについて

    ネットワークプロバイダーのバージョンなどを表示されるプログラムを実行しようとしたのですが、以下のようなエラーがでて先に進めません。どうしたら直すことが出来るでしょうか? 1>c:\program files\microsoft platform sdk\include\winnetwk.h(142) : error C2146: 構文エラー : ';' が、識別子 'dwScope' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(142) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(142) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(143) : error C2146: 構文エラー : ';' が、識別子 'dwType' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(143) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(143) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(144) : error C2146: 構文エラー : ';' が、識別子 'dwDisplayType' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(144) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(144) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(145) : error C2146: 構文エラー : ';' が、識別子 'dwUsage' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(145) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(145) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(146) : error C2146: 構文エラー : ';' が、識別子 'lpLocalName' の前に必要です。 1>c:\program files\microsoft platform sdk\include\winnetwk.h(146) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(146) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files\microsoft platform sdk\include\winnetwk.h(147) : error C2146: 構文エラー : ';' が、識別子 'lpRemoteName' の前に必要です。 環境はVC++2005です。

  • CxxxView::GetDocument() const; のエラー

    はじめまして 分け合って数年ぶりにVC++で開発することになりました。 CYomiDoc* CYomiView::GetDocument() const; 上記コンパイルでエラーが出るようになってしまいましたが、 解決方法がわかりません。 エラーは、 error C2143: 構文エラー : ';' が '*' の前にありません。 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません warning C4183: 'GetDocument': 戻り値の型がありません。'int' を返すメンバ関数とみなします。 よろしくお願いします。 環境 Wndows 7/vista VS2005 MFC

  • 基本クラスに派生クラスのインスタンスを持たせたいのですが.....

    A.h//////// #pragma once #include "B.h" class A{ B* b; } B.h/////// #pragma once #include "A.h" class B : public A{ } ////////////// 上のようなクラス構成にさせたいのですが..... #include "A.h"をB.hに追加したところでエラーが出ます。 基本クラスに派生クラスのインスタンスを持たせたいのですが.... どのようにすれば良いでしょうか? エラー内容は : error C2143: 構文エラー : ';' が '*' の前にありません。 : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません この三つが出ます。 何方かよろしくお願いしますm(_ _)m

  • 互いのクラスで互いのクラスのポインタを持ち合う方法

    ◆hoge.h #pragma once #include "fuga.h" class Choge{ protected:  Cfuga *fuga; public:  Choge( void ){ fuga=new hoge(this); }  ~Choge(); }; ◆fuga.h #pragma once #include "hoge.h" class Cfuga{ protected:  Choge *hoge; public:  Cfuga( hoge *h ){ hoge=h; }  ~Cfuga(); }; このように互いのポインタを持ち合うようなクラスを作りたいのですが、 下記のようなエラーが出てどうにもうまくいきません。 c:\...\hoge.h(5) : error C2143: 構文エラー : ';' が '*' の前にありません。 c:\...\hoge.h(5) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\...\hoge.h(5) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 環境はVisualC++2005(ExpressEdition)、WindowsXPです。 どうすれば実現できるでしょうか?

  • #include "_cv.h"の設定を教えて

    VisualStudioC++2010を用いて、#include "_cv.h"を使用したいのですが、ファイルが存在する場所 「C:\Program Files\OpenCV\cv\src」を追加のインクルードファイルに入れても以下のエラーがでます。 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C2146: 構文エラー : ';' が、識別子 'icvDepthToDataType' の前に必要です。 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C2433: 'CvDataType' : 'inline' はデータ宣言をするのに使用できません。 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\Program Files\OpenCV\cv\src\_cv.h(84): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ・・・・・ どなたか#include "_cv.h"の設定の仕方を教えてくれないでしょうか?

  • visual c++ C言語のプログラムを作る方法

    プログラミングについては学校で習っているのですが, 学校ではterapadとteratermを使っています。 しかしいざteratermを落として使い方を調べるとノーパソ一台ではどうしようもないとわかりました。 なので最初から入っていたvisual c++を使おうと思いました。 しかし学校で組んだプログラムをそのままこれで組んでも、 「error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません」 と出ました。 正直使い方もよく知らないため、??状態でよくわかりませんでした。 これはどうすればいいのでしょうか? ちなみに上のエラーがでた行は、 main(int co, char *ma[3]){ と書いてあります。

  • コンパイルできません

    #include<iostream> using namespase std; int main(){ double feet; do{ cout<<"フィート数を入力する(0で終了):"; cin<<feet; cout<<feet*12<<"インチ\n"; }while(feet!=0.0); return 0; } をVisual Studio 2008 コマンドプロンプトでコンパイルしようとしたら、このようなメッセージが出てコンパイルできません。何故なのでしょうか?よろしくお願いします。 sample1-3-2.cpp C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : warning C 4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりま せん。/EHsc を指定してください。 sample1-3-2.cpp(2) : error C2146: 構文エラー : ';' が、識別子 'std' の前に必要で す。 sample1-3-2.cpp(2) : error C2873: 'namespase' : シンボルを using 宣言の中で使用 することはできません。 sample1-3-2.cpp(2) : error C4430: 型指定子がありません - int と仮定しました。メ モ: C++ は int を既定値としてサポートしていません sample1-3-2.cpp(2) : error C2365: 'std' : 再定義; 以前の定義は '名前空間' でした 。 sample1-3-2.cpp(7) : error C2065: 'cout' : 定義されていない識別子です。 sample1-3-2.cpp(8) : error C2065: 'cin' : 定義されていない識別子です。 sample1-3-2.cpp(9) : error C2065: 'cout' : 定義されていない識別子です。

  • C++のヘッダーについて

    C++のプログラミングをしています そこで出てきた問題なのですが・・・ class Aのヘッダファイルa.hをほかのcppファイルにインクルードすると、 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません error C2146: 構文エラー : ';' が、識別子 'test' の前に必要です。 とほかのヘッダファイルでコンパイルエラーがでます ヘッダファイルをインクルードしたときのみこのエラーがでて困っています。 解決法や、ヒントになりそうな事例を知りませんでしょうか?

  • 構文エラーについて教えてください

    申し訳ありません、初心者なので教えてください。 VC2005を使ってプログラミングをしております。 エラーは、以下のようになっております。 見づらいと思いますが、ご親切な方、よろしくお願いします。 申し訳ありません、初心者なので教えてください。 VC2005を使ってプログラミングをしております。 エラーは、以下のようになっております。 見づらいと思いますが、ご親切な方、よろしくお願いします。 c:\program files\microsoft platform sdk\include\mmreg.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\dxlib.h(1529) : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C3872: '0x3000': この文字を識別子で使用することはできません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(7) : error C3872: '0x3000': この文字を識別子で使用することはできません c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(8) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。 c:\documents and settings\yu-ki-pippi\デスクトップ\dxlib_vc\サンプルプログラム実行用フォルダ\test.cpp(8) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ブラウザ情報ファイルを作成しています... Microsoft Browse Information Maintenance Utility Version 8.00.50727 Copyright (C) Microsoft Corporation. All rights reserved. ビルドログは "file://c:\Documents and Settings\yu-ki-pippi\デスクトップ\DxLib_VC\サンプルプログラム実行用フォルダ\Debug\BuildLog.htm" に保存されました。 DxLib - エラー 7、警告 2 #include "Dxlib.h" struct CharaData{ int x; //左上座標 int y; int ghandle; //画像ハンドル int life;   //ライフ int image_w; //イメージの大きさ int image_h; int bounds_w; //判定領域の大きさ int bounds_h; }; *エラーをクリックするとこの部分でエラーが出てしまいます。

  • DLLの使い方とerror C2146について。

    お世話になります。プログラミングの経験がほとんど無い初心者です。あるゲームソフトのSDKを使い自作デバイスでゲームを操作するプログラムを作りたいのですが、そのテスト段階で躓いています。(ご参考まで→ttp://www.lekseecon.nl/sdk.html) なおIDEはVC++2008ExpressEditionを使っています。エラーの内容は次の通りです。 ************** 1>------ ビルド開始: プロジェクト: PC19, 構成: Debug Win32 ------ 1>コンパイルしています... 1>PC19.cpp 1>f:\pic\myprograms\pc\pc19\LVLD_SDK.h(897) : error C2146: 構文エラー : ';' が、識別子 'LVLDSession' の前に必要です。 1>f:\pic\myprograms\pc\pc19\LVLD_SDK.h(897) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>f:\pic\myprograms\pc\pc19\LVLD_SDK.h(897) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ************** 原因となったLVLD_SDK.h中のエラー対象行周辺は次の通りです。 ************** #define SDK_VERSION 202 #define OPEN 1 #define CLOSE 0 //(省略) __declspec(dllexport) LRESULT LVLDSession  (int flag,int LVLDVersion); //※エラー行です //(省略) ******************** プログラム本体についてはまず新規プロジェクトでWindowsフォームアプリケーションを準備し、Timerを組み込みました。SDKには3つのファイル、LVLDSDK.dll、LVLDSDK.lib、LVLD_SDK.hが内包されており、これらすべてをプロジェクトフォルダーにコピーしました。ソリューションエクスプスローラーでLVLD_SDK.hをヘッダーファイルフォルダーに、LVLDSDK.libをリソースフォルダーに参照させました。またプロジェクトのプロパティのリンカの入力、追加の依存ファイルにLVLDSDK.libを追加しました。他のコンパイル時エラーへの対応として、構成プロパティ、全般、共通言語ランタイムサポートを/clrへ変更しています。 Form1.hの先頭行近くに #include "LVLD_SDK.h" を追加し、Timerイベント内に動作確認用の命令を記述しました。 **Form1.h抜粋***** #pragma once #include "LVLD_SDK.h" (中略) #pragma endregion private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) { signed int result0; result0=LVLDSession(OPEN,SDK_VERSION); } (中略) ********** 3種類のエラーが出ていますが関連性がよく分からず、まとめて質問する形になってしまいました。質問に不備がありましたらそれも叱咤ご教授いただければと思います。よろしくお願いします。