вот как вы можете воспроизвести эту проблему....
создать новый проект (C++) под названием «test» (file|new|project)
выберите «Приложение Windows Forms»
и добавьте «stdio.h» включите и приведенный ниже фрагмент кода в исходный файл test.cpp.....
-------------------начало фрагмента------ --------------
Код: Выделить всё
#include
...
int main(array ^args)
{
int i;
System::Threading::ThreadState state;
char str[20];
sprintf (str, "%s", "test string");
...
Если вы скомпилируете код, как указано выше (сначала вам придется выполнить сборку), вы получите два предупреждения о 'i ' и 'state' не указаны (ничего о том, что sprintf устарел).
Если вы закомментируете "System::Threading :Thread state;", вы получите один предупреждение о том, что на «i» нет ссылки, и еще одно предупреждение (C4996) для «устаревшего» оператора sprintf....
Эта проблема также возникает для «System::Windows: :Forms::MessageBoxIcon", "System::Base64FormattingOptions" (и, возможно, все типы 'enum class'!)
Кто-нибудь знает причину и способ решения описанной проблемы здесь (у меня есть другие файлы, демонстрирующие эту проблему..). (Я создал тему на msdn, но потом нашел этот сайт! см. ссылку ниже)
Visual Studio 2005 перестала предупреждать об устаревших функциях
Подробнее здесь: https://stackoverflow.com/questions/200 ... dstate-and