Ошибка C1001 “Внутренняя ошибка компилятора”.Ошибка указывает на {

#c #visual-studio #clr

#c #visual-studio #clr

Вопрос:

Я впервые работаю в среде Visual Studio CLR, и каждый раз, когда я отлаживаю программу, я получаю сообщение об ошибке C1001 в MyForm.h строке 16. Единственное, что есть в строке 16, — это { символ.Вот картинка:

введите описание изображения здесь

Итак, кто-нибудь может помочь?

Комментарии:

1. Это похоже на сообщение об ошибке IntelliSense. (Известно, что IntelliSense время от времени выдает неправильные отчеты.) Итак, пожалуйста, проверьте, можете ли вы скомпилировать код и проверить, какие жалобы на выходе сборки. (Имхо, это единственное, чему можно доверять. Я даже отключил список ошибок в своем VS.) Относительно внутренней ошибки компилятора : я видел их время от времени на протяжении многих лет. Это раздражает, поскольку указывает на то, что компилятор работает не полностью так, как предполагается. Однако в каждом отдельном случае причиной была ошибка в моем коде, хотя, конечно, ее сложнее найти с такой неспецифической ошибкой.

2. Единственное, что есть в строке 16, — это { символ. Позиция ошибки указывает, где компилятор нашел что-то, что не соответствует правилу, которое он запустил ранее. Это также может означать, что он ввел правило, ранее которого вы не намеревались применять. Итак, если { есть что-то, что вряд ли может быть неправильным, начните искать в обратном направлении, можете ли вы найти свою ошибку выше. (Т.е. привыкайте к тому факту, что компиляторы не читают код так, как это делают люди. — Они не видят общей картины.) 😉

Ответ №1:

Я не совсем уверен, является ли это ответом на вопрос OPs, но это был такой приятный случай, что я не смог удержаться, чтобы не опубликовать его.


Это то, что я написал в своем комментарии (ранее в этот день):

Это похоже на сообщение об ошибке IntelliSense. (Известно, что IntelliSense время от времени выдает неправильные отчеты.) Итак, пожалуйста, проверьте, можете ли вы скомпилировать код и проверить, какие жалобы на выходе сборки. (Имхо, это единственное, чему можно доверять. Я даже отключил список ошибок в моем VS.)

Это то, что произошло со мной только сегодня (в Visual Studio 2019):

Снимок VS 2019

Пожалуйста, обратите внимание на красную зигзагообразную линию под fOut и подсказку с internal error .

Я был не уверен, по крайней мере, на мгновение, мог ли я ошибиться. (Я должен признать, что я в определенной степени доверяю IntelliSense, потому что большинство его жалоб верны.)
Затем я нажалCtrlF7, чтобы скомпилировать этот файл…

Вывод:

 Build started...
1>------ Build started: Project: RFFileUtils - Example 1 - u8path(), Configuration: Debug x64 ------
1>RFFStreamExample.cc
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========