ページ 11

コンパイルエラー その2

Posted: 2008年12月17日(水) 22:21
by dic
また、質問させてもらいます

自作のライブラリを改良しているのですが

CDicLog.cpp
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(32) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(32) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

と出て stdio.h 内でコンパイルエラーが発生しているようで
手が出せません
#ifdef  __cplusplus
extern "C" {
#endif
stdio.h内の上記の場所でエラーが発生するのですが
どういった対処が考えられるでしょうか?

使用コンパライは VC++ 2008 Express
使用OSは WindowsXP Home Editionです

Re:コンパイルエラー その2

Posted: 2008年12月17日(水) 22:37
by 御津凪
stdio.h をインクルードしている前に何か(インクルード文やマクロ以外)書かれていますか?
あるのであればそこに問題があるように思います。

Re:コンパイルエラー その2

Posted: 2008年12月17日(水) 22:37
by box
> 自作のライブラリを改良しているのですが

改良した箇所に問題が隠れていて、
それがstdio.hのところで顕在化しているのかもしれません。
そこで、

> CDicLog.cpp

この中身を見せていただけますか?

Re:コンパイルエラー その2

Posted: 2008年12月17日(水) 22:41
by たいちう
> stdio.h内の上記の場所でエラーが発生するのですが
> どういった対処が考えられるでしょうか?

stdio.hにバグのある可能性は無視して、あなたの書いたプログラムに
100%問題があるものと思ってください。少なくともとりあえずは。

Hello Worldのプログラムで、stdio.hを使いますよね?
コンパイルエラーにならないことを確認してください。
Hello Worldのプログラムと、あなたのプログラムとの間のどこかで、
コンパイルエラーが出るようになるはずですので、
何をしたらエラーになったのか探してください。

そこまで突き止められたら自分で解決できる場合も多いし、
できなくとも今よりもっと質問しやすいでしょう。

# 憶測では、変なマクロを使ってしまっているのが原因かな?
# もしかしたら、開示されている症状のみでアドバイスできる人も
# 現れるかもしれませんが、上で説明した手順を使えるようになっておくと、
# 自力解決できるケースが増えますよ。

Re:コンパイルエラー その2

Posted: 2008年12月18日(木) 07:23
by dic
軽い状態にした環境で作り直しても
やはりコンパイルエラーが起きます
ソースを送付します

VC++ 2008 Expreee にてコンパイルしています
VC++ 6.0 でもコンパイルエラーになりました

Re:コンパイルエラー その2

Posted: 2008年12月18日(木) 09:53
by toyo
CDicLog.h
の先頭に意味不明な文字があります
z// 指定された文字列をファイルの末尾に追加します。

Re:コンパイルエラー その2

Posted: 2008年12月18日(木) 10:02
by たいちう
次の3つを直せばコンパイルはできるようになります。

CDicLog.hの冒頭のzを削除。
CDicLog.cppの冒頭に、#include "stdafx.h"を追加。
プロジェクトのプロパティで、構成プロパティ-全般-文字セットを
マルチバイト文字セットを使用する、に変更。

Re:コンパイルエラー その2

Posted: 2008年12月18日(木) 10:56
by dic
ボンミスでした
解決しました
ありがとうございました