• 締切済み

VC++6.0シンタックスエラーについて

一度windowsのプログラムを半完成させていました。 その後大幅に修正するため、コードの一部を切り貼りしながら修正していたのですが、ビルドをしたとき、予想以上のエラーが発生し(50位) 原因もよくわかりませんでした。 たまたま、雑誌についていたサンプルコードをビルドしたのですが まったく同じエラーが発生するのです。 自分では、VC++が壊れたのかなと思っているのですが、 こんな現象ご存知ありませんか?

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#3補足について ウチでも同じようなことをやってみましたが、(もちろん)問題ありませんでした。 エラーメッセージから判断するに、ヘッダファイル(*.hのファイル)が壊れているか、 あるいは、コンパイルオプションとかそういうので、依存するヘッダの読み込みやdefineマクロなんかが、一部無効になっているのではないかと思います。 VCを再インストールした方が早いかもしれませんね。

namnam
質問者

補足

再インストールを試みましたがだめでした。 OSのインストールからやり直してみます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

自動的に設定されるヘッダファイルの設定がおかしくなっているか ヘッダファイル自体が壊れているんですかね~。 システムが作成したコードの部分を削除したりすると、コードの管理が自動でできなくなる場合はありますけどね。 新しい、プロジェクトでほとんどなんにも実行しないような、ものを作ってもエラーがでますか? そういうもので、エラーになるようなら、VCが壊れているのかもしれませんが、 新しいプロジェクトにしたら特別エラーがでないのなら、単にそのプロジェクトをおかしくしたんでしょうね。

namnam
質問者

補足

次の4つのコードを実行してみました。これらはすべて 新しいプロジェクト作成後実施しています。 1.拡張子Cで(コンソールアプリ) main() { } -----異常なく実行可能 2.拡張子C++で(コンソールアプリ) main(void) { } -----異常なく実行可能 3.拡張子Cで(win32アプリ) #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { return 0; } すると コンパイル中... 01_02_00.c c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : error C2061: 構文エラー : 識別子 'KSPIN_LOCK' がシンタックスエラーを起こしました。 c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : error C2059: 構文エラー : ';' ・・・・・省略となります。 4.新規作成-win32アプリ-標準的なハローワールドアプリとしてビルドした結果 リソースをコンパイル中... コンパイル中... StdAfx.cpp c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : error C2146: 構文エラー : ';' が、識別子 'KSPIN_LOCK' の前に必要です。 c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : fatal error C1004: 予期せぬ EOF が検出されました。 cl.exe の実行エラー fsaf.exe - エラー 2、警告 0 となります。 なぜ新規作成のサンプルプログラムのようなものまで、エラーが出るのかわかりません。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

)とか }とかが不整合になっているとか ;がどっかで消えたとか 宣言部分でエラーが発生しているとか

  • elmclose
  • ベストアンサー率31% (353/1104)
回答No.1

エラーの内容は把握できていますか? 例えば、includeしているファイルがなくなったとか、そういうことではないでしょうか?

namnam
質問者

補足

もう少し具体的に症状を説明します。 1.次のことをしてみた結果とエラーです。 ○プログラムを開き新規作成-win32アプリケーションで プロジェクト名をいれ「標準的な"ハローワールド"アプリケーション」で実行し、すぐビルドして出たエラーです。 ▼コンパイル中... StdAfx.cpp c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : error C2146: 構文エラー : ';' が、識別子 'KSPIN_LOCK' の前に必要です。 c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : fatal error C1004: 予期せぬ EOF が検出されました。 2.今回のビルドで発生したエラーです。ちなみにビルド後黙り込みます。 ▼コンパイル中... main.c c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : error C2061: 構文エラー : 識別子 'KSPIN_LOCK' がシンタックスエラーを起こしました。 c:\program files\microsoft visual studio\vc98\include\winnt.h(1092) : error C2059: 構文エラー : ';' c:\program files\microsoft visual studio\vc98\include\winnt.h(1093) : error C2143: 構文エラー : '{' が '*' の前に必要です。 c:\program files\microsoft visual studio\vc98\include\winnt.h(3132) : error C2061: 構文エラー : 識別子 'UINT_PTR' がシンタックスエラーを起こしました。 c:\program files\microsoft visual studio\vc98\include\winnt.h(3133) : error C2059: 構文エラー : '}' ・・・・・長いのでここまでにします。 3.以前からビルドの黙り込みがあり、その都度タスクマネージャーで終了していた。 4.エラーを見ると私の作成したソースではなく、開発ソフトの宣言ヘッダファイル?のようなものがエラーと指摘しています。そのソースのはじめを次に示します。 ○/*++ BUILD Version: 0095 Increment this if a change has global effects 以上よろしくお願いします。

関連するQ&A

  • VC6からVS2005への移行エラーについて

    VC6のサンプルプログラムをVS2005で動かしたいにですが、初心者でエラーが出ています。 VS2005で開こうとすると変換が必要という事で変換して、ビルドすると下記部分のエラーが出ます。 どの様に修正すればいいでしょう。 <エラー部分> #include <strstrea.h> ・       ・ cstrstream cnv(str, 20); cnv.flags(ios::fixed); cnv.precision(0); cnv << val << '\0'; ここで、#include <strstream> に変えて、OKとなりましたが、以降の部分は同じエラーです。 どうやら、cnv がおかしいようです。

  • openCV エラー

    はじめまして. プログラミングについて質問があります. VCでOpenCVを使ってプログラムしているのですが,昨日まで動いていたプログラムがビルドするとにエラーになってしまいました. 内容は, error C3861: 'cvCreateCameraCapture': 識別子が見つかりませんでした 以前からときどき発生していたエラーなのですが,今までは正常にビルドできたプログラムにコピーして対応していましたが,原因を今まで解決できずにいたので,修正しようと思ったのですがよくわかりません. OpenCVやプログラムで詳しい方よろしくお願いします. 初心者のため説明が足りないかもしれないので,足りない情報がわかれば返信致しますのでお願いします.

  • VC のビルド

    VC2005で開発しています。 あるサンプルプログラムを.slnから呼び出すと正常に作動するのですが、ファイルを集めて自分でビルドするとリンクのところでシンボルエラーが出ます。 正常に作動する方は、mainプログラムを最後にコンパイルしていますが、作動しないほうはmainプログラムからコンパイルしています。 これが理由でリンクしないのでしょうか? そうであるならどうやってビルドする順番をコンパイラに指示すればよいのでしょうか。  どなたか解答お願いします。

  • vc++6.0 のリンクエラー 教えて

    VC++6.0を使っています。オープンソースのプログラムをビルドすると、 XXXXXX.obj : error LNK2001: unresolved external symbol __imp__ntohl@4 のリンクエラーが出ます。 どうすれば良いのでしょうか? 何か設定でも間違えているのでしょうか? 初心者なので よろしくお願いいたします。

  • VC++でboolがエラーになる

    Borland C++ Builderで開発したプログラムを、訳あってVC++(2003)に乗せ変えてビルドしようとしたのですが、boolを使っているところでコンパイルエラーになります。 正確には error C2061: 構文エラー : 識別子'bool' となります。 このエラーの解決法をご存知の方がいらっしゃいましたら、ご教示お願いいたします。

  • VC++ ビルドできず?

    VC++2010をダウンロードして、プログラムを作って、ビルドしようとするのですが エラーでビルドしません。使用前になにか設定等あるのでしょうか?教えて下さい。 (1)簡単なボタンとラベルで、ボタンを押したら、文字がLabelに表示するもビルドしません。 (2)OSはWindows7 VC++2010でビルドせず。 (3)別なPCで Windows XPとVC++2010では問題なく、ビルド、動作します。 (4)Windows8とVC++2010でも問題ありません。 (5)VC++2010のソースはvc-webの同じものでダウンロードして、PCにインストールしています。 以上、よろしくお願いします。

  • VC++ リンクエラーについて

    こんにちわ。 VC++初心者です。 宜しくお願い致します。 環境は、XP HomeEditionSP2 CV++6.0 です。 VCの基本を理解する為及びプログラミングの勉強の為、簡単な表示ソフトを自作し、ビルトした後実行したら、表示されるはずのウインドウが表示されませんでした。 ソースコード修正後、再度ビルドをかけたら、上記LNK1168が発生しました。 WEBから色々情報をとってみると、 ”ターゲットが実行中であり終了できていないので、ターゲットを実行中止にした後にあらためてビルドすればよい”とありました。 ウインドウが表示されていれば、右上の×マークを押すことでとりあえずは終了(実行中止)出来ますが、今回私が作成したバグ入りソフトの様に、ウインドウが表示しない状態でターゲットの実行中止をするにはどうすれば良いでしょうか? VC++には、実行中止、というメニューは無いような気がするのですが。 ワークスペースを閉じたり、VC++を終了させたりしてみたのですが駄目でした。 今後VCを使用するにあたり、是非ともこの問題を明確にしたく、質問させて頂きました。 初歩的な質問で誠に恐縮ですが、どなたかお教えください。 宜しくお願い致します。

  • VC++2010Exデバック実行エラー

    VC++2010Expressのデバック実行時にエラーが出て困っています。 VC++初心者レベルです。 宜しくお願い致します。 VC++2010Expressにて、OpenCV2.2を使用したプログラムを組むため学習中です。 OSはXPです。 OpenCVのサンプルプログラムを includeファイル、libファイルのパス(デバッグ用lib)の設定をして、 ビルドは正常に完了するのですが、デバック実行時(メニューバーの三角ボタン)に エラーが発生し、下記文面のVC++のエラーダイアログボックスがでます。 ==== imgCapture.exe の 0x7c94e4ff (ntdll.dll) でハンドルされていない例外が発生しました: 0xC0000235: NtClose は NtSetInformationObject 経由のクローズから保護されているハンドルにコールされました。 ==== 1.OpenCVが原因の可能性 OpenCVの関数  cvCaptureFromCAM(0) の前に矢印がついて止まっており、OpenCV2.2が最近出たばかりなので、 そのバグではないかと疑いましたが、 別PCの同様の環境で同じプロジェクトをビルドし、デバック実行すると、問題なく動作しました。 2.VC++2010Expressのプロジェクト設定が原因の可能性 上記同様、同じプロジェクトで別PCで動作しているため問題ないようです。 3.VC++関連が原因の可能性 現在使用しているPCは、もともとVC++2008Expressをインストールしておりましたので、 アンインストールせず、VC++2010Expressをインストールしてしまったことが原因かと考え、 VC++2008Express、VC++2010Express、関連アプリケーションをアンインストールして、 VC++2010Expressのみインストールしなおしてみましたが、解決しませんでした。 4.環境変数の可能性 ビルドで生成された.exeファイルを直接実行すると問題なく実行されましたので、 dllのパス設定は問題ないようです。 ビルドで生成されたexeが直接実行できるので、VC++関連が原因だと考えているのですが、 VC++2010Expressをインストールしなおしても解決しないため、お手上げ状態です。 問題なくデバック実行できる別PCと同じ設定にしているつもりですが、見落としがあるかも知れません。 解決方法、見落とし、これを試してみてはなど、気がつかれたことがありましたら アドバイスよろしくお願いいたします。

  • VC++2010の「#include <」

    VC++ で、他人の作ったソースコードをビルドして実行してみています。 (WinPcapのデベロッパ向けのライブラリを使った、サンプルプログラムです。) VC++自体、あまり理解が深くないのですが、 「#include <」まで書くと、「ヘッダファイル名が表示される」プロジェクトと、「そうではない」プロジェクトがあります。 「そうではない」方のプロジェクトだと、ビルド時にincludeするライブラリが足りないとか、そんな感じのエラーが表示されます。 ぱっと見の違いは、「ヘッダファイル名が表示される」プロジェクトの場合は、 ソリューションエクスプローラに、「外部依存関係」というフォルダのショートカットがあり、ライブラリがどっさりあります。 「そうではない」プロジェクトについても、「#include <」で、ヘッダファイルを表示してくれるようにしたいのですが、どの様にすればよいのでしょうか?★ プロジェクトのプロパティの、 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などが導入されています。 再インストールするのもありかと思ったのですが、原因が分からないとまた同じ現象が発生しそうなため踏み切れません。 よろしくお願いします。

専門家に質問してみよう