![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Visual C++ 2005でプログラムを組んでいます。
あるプログラムをビルドすると以下のようにstring.h内でエラーが大量に発生します。string.hをインクルードしないとエラーは出ないことからおそらくstring.hまわりの設定がおかしいとは思うのですがよくわかりません。
エラー2error C2144: 構文エラー : 'char' は ')' によって先行されなければなりません。c:\program files\microsoft visual studio 8\vc\include\string.h 136
エラー3error C2144: 構文エラー : 'char' は ';' によって先行されなければなりません。c:\program files\microsoft visual studio 8\vc\include\string.h 136
エラー5error C2143: 構文エラー : ';' が ',' の前にありません。c:\program files \ microsoftvisualstudio8 \ vc\ include\ string.h 136
宜しくお願いします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
メッセージでは、string.h の 136行目でエラーが出ていると言っていますね。
その行だけを見ても原因がわからないかもしれません。
そこで、120行目~140行目あたりを載せていただけますか?
また、string.h のタイムスタンプはどうなっていますか?
他のヘッダーファイルとの違いはありますか?
# (一部とはいえ)製品の内容をこういう場所に載せるのは、著作権か何かに引っかかるのでしょうか。>識者のかたがた
この回答への補足
string.hのタイムスタンプは '2006/12/01' でstdio.h, stdlib.hなどと同じです。
#if __STDC_WANT_SECURE_LIB__
_CRTIMP __checkReturn_wat errno_t __cdecl strerror_s(__out_ecount_z(_SizeInBytes) char * _Buf, __in size_t _SizeInBytes, __in int _ErrNum);
#endif
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, strerror_s, __out_ecount(_Size) char, _Buffer, __in int, _ErrorMessage)
_CRTIMP __checkReturn_wat errno_t __cdecl _strlwr_s(__inout_ecount_z(_Size) char * _Str, __in size_t _Size);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _strlwr_s, __inout_ecount_z(_Size) char, _String)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0(char *, __RETURN_POLICY_DST, _CRTIMP, _strlwr, __inout_z char, _String)
_CRTIMP __checkReturn_wat errno_t __cdecl _strlwr_s_l(__inout_ecount_z(_Size) char * _Str, __in size_t _Size, __in_opt _locale_t _Locale);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _strlwr_s_l, __inout_ecount_z(_Size) char, _String, __in_opt _locale_t, _Locale)
【136行目】__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(char *, __RETURN_POLICY_DST, _CRTIMP, _strlwr_l, _strlwr_s_l, __inout_ecount_z(_Size) char, __inout_z char, _String, __in_opt _locale_t, _Locale)
#if __STDC_WANT_SECURE_LIB__
_CRTIMP_ALTERNATIVE __checkReturn_wat errno_t __cdecl strncat_s(__inout_ecount_z(_DstSize) char * _Dst, __in rsize_t _DstSize, __in_z const char * _Src, __in rsize_t _MaxCount);
#endif
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_2(errno_t, strncat_s, __inout_ecount_z(_Size) char, _Dest, __in_z const char *, _Source, __in size_t, _Count)
#pragma warning(push)
#pragma warning(disable:6059)
/* prefast noise VSW 489802 */
__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_EX(char *, __RETURN_POLICY_DST, _CRTIMP, strncat, strncat_s, __inout_z char, __inout_ecount_z(_Count) char, _Dest, __in_z const char *, _Source, __in size_t, _Count)
#pragma warning(pop)
お手数おかけします。
No.3
- 回答日時:
とりあえず
#include <string.h>
だけからなるソースコードはコンパイルできますか? これがコンパイルできるなら string.h の問題ではなくあなたの作ったプログラムの問題といえるでしょう.
この回答への補足
回答ありがとうございます。
#include <string.h>だけのコードはコンパイルできません。
数日前までは問題なくコンパイルできたのですが。環境が変わったとしか思えないです。思い当たるのはスパイウェアソフトでスキャンをかけて見つかったものを駆除したぐらいです。
string.hファイルを入れなおしたほうがいいのでしょうか?
No.2
- 回答日時:
もし、本当にstring.hの中にエラーの原因があるとします。
そうすると、質問者さんのところだけでなく、他の人のところでも
同じようなエラーが起こることが考えられるでしょう。
そうなると、世間が黙っていませんよね。
マイクロソフトの信用に関わる話ともなります。
ところが、実際はそうなっていませんね。
ということは、「string.hに原因がある」という仮説が誤っていることになります。
おそらく、質問者さんが書かれたコードに何か正しくない箇所があるのでしょう。
この回答への補足
数日前まではstring.hを利用したソースはコンパイルできていました。
string.hに問題があるのではなく、数日の間で自分のPCでなにか問題が起きたと思っています。ソースは以下になります。
#include <stdio.h>
#include <string.h>
int main(void)
{
int st;
st = strcmp("abced", "abcce");
printf("st = %d\n", st);
return 0;
}
No.1
- 回答日時:
それをインクルードするまえにコンパイルしようとしているソースファイルを良くみて、"("を閉じてないとか、”だけしかないとか。
よおーく見直してみましたか?この回答への補足
#include <stdio.h>
#include <string.h>
ソースは以下のような簡単なものですが、なにか間違いありますでしょうか?
#include <stdio.h>
#include <string.h>
int main(void)
{
int st;
st = strcmp("abced", "abcce");
printf("st = %d\n", st);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
fortranでプログラムを実行する...
-
適切な変換関数が存在しない???
-
Excelのエラーで困ってます。
-
デバッグ中のエラーのことで教...
-
Handlesについて
-
sys/time.hのインクルードがで...
-
Visual Studioのstrcpy_sについて
-
HEWを使用しているのですが、こ...
-
C言語 ピクチャーコントロール
-
VBScriptによるExecuteExcel4Ma...
-
ACCESSのDate関数のエラー表示...
-
VC++6.0からVC++2010への移行
-
PC画面を録画するプログラムでd...
-
「メモリが"read"...」アプリケ...
-
C2146を回避するにはどうしたら...
-
VB2008で定数に色の設定をした...
-
Fortran コンパイルエラーについて
-
BC30002: 型 'ListItem' が定義...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
sys/time.hのインクルードがで...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
visual C++ でビルドの中止がで...
-
デバッグ中のエラーのことで教...
-
multiple definitionというエラー
-
ビルドが失敗してしまいます
-
LPCWSTRとchar
-
Handlesについて
-
BC30002: 型 'ListItem' が定義...
-
左側がクラス、構造体、共用体...
おすすめ情報