質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1556閲覧

VC++アップグレード時の問題について

nannan0828

総合スコア5

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2019/08/28 01:14

VS6からVS2017へアップグレードを行っています。
その中、あるプログラムをアップグレードした際に、以下のようなエラーが表示していて、
作業が進まないです。

エラーメッセージ:
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C2059 構文エラー: '文字列' PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\wchar.h 181
エラー C2059 構文エラー: ')' PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\wchar.h 183
エラー C2059 構文エラー: ',' PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 737
エラー C2059 構文エラー: ',' PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 906
エラー C2065 'LPCTSTR': 定義されていない識別子です。 PG名 c:\work\shou\project\nito\10_source\vs2017\03.モジュール一覧\vb6,vs6ソース\tools\printlog.h 14
エラー C2065 'LPCTSTR': 定義されていない識別子です。 PG名 c:\work\shou\project\nito\10_source\vs2017\03.モジュール一覧\vb6,vs6ソース\tools\printlog.h 15
エラー C2065 '_I': 定義されていない識別子です。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 738
エラー C2065 '_I': 定義されていない識別子です。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 739
エラー C2065 '_I': 定義されていない識別子です。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 907
エラー C2065 '_I': 定義されていない識別子です。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 908
エラー C2143 構文エラー: ')' が '文字列' の前にありません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\wchar.h 181
エラー C2143 構文エラー: ';' が '文字列' の前にありません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\wchar.h 181
エラー C2143 構文エラー: ';' が '{' の前にありません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\wchar.h 184
エラー C2146 構文エラー: ')' が、識別子 'cFilePath' の前に必要です。 PG名 c:\work\shou\project\nito\10_source\vs2017\03.モジュール一覧\vb6,vs6ソース\tools\printlog.h 14
エラー C2146 構文エラー: ')' が、識別子 'cFilePath' の前に必要です。 PG名 c:\work\shou\project\nito\10_source\vs2017\03.モジュール一覧\vb6,vs6ソース\tools\printlog.h 15
エラー C2440 '型キャスト': 'const char [80]' から 'float' に変換できません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 740
エラー C2440 'return': 'const char [80]' から 'long double' に変換できません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 909
エラー C2447 '{': 対応する関数ヘッダーがありません (旧形式の仮引数リスト?) PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\wchar.h 184
エラー C2537 'c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h': リンケージ指定子は使用できません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 737
エラー C2537 'c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h': リンケージ指定子は使用できません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 906
エラー C2598 リンケージ指定子がグローバル スコープで宣言されていません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 737
エラー C2598 リンケージ指定子がグローバル スコープで宣言されていません。 PG名 c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\corecrt_math.h 906

上記のエラーを見ると、Windows SDKのファイルにエラーが出ているようにです。
設定を変えてみましたが、特に改善されませんでした。

ご教授を行っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

衝突を避けるために、自作ヘッダーの読み込みを標準ヘッダーの後にすべてずらしてみてください。多少エラーメッセージが変わるかもしれません。

おそらく意図しないマクロの置換が行われているため構文エラーになっているのだと思います。

加えてすべてのソースファイル、特に自作ヘッダーについて
http://ezoeryou.github.io/cpp-book/C++11-Syntax-and-Feature.xhtml#reserved-name
を参考に予約名やキーワードを使っていないか確認してみてください。

それ以上は元のprojectをどっかに上げてもらわないときつそうです。

投稿2019/08/28 04:13

yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yumetodo

2019/08/28 09:39

あれ、解決した・・・?なにが決め手だったか追記してもらえると他の方の参考になります。
guest

0

wchar.h:181 は "In_opt FILE* _F," だけですからここで文字列というエラーが出ているのが気になります。
corecrt_math.h にも_Fが出てきていますし、_F がdefineされてたりしませんか?

あとは、VS6の時代を考えるとShift_JISだと思うので、
wchar.h自体を読み込むのがなんだかおかしい気がします

文字コードをマルチバイト文字を使用するに切り替えてみたらどうでしょうか
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2011/12/28/unicode-23/

投稿2019/08/28 01:43

izmktr

総合スコア2856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nannan0828

2019/08/28 01:59

VC++の初心者なので、あまりよくわからないですが、 プロジェクトのプロパティの設定を見た限りは、 「マルチバイト文字を使用する」になっています。 _Fがdefineされているのを見つけました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問