#include <stdio.h> #include <Windows.h> int main() { TCHAR buff[1024]; GetLogicalDriveStrings(1024, buff); int i; for(i = 0; buff[i] != 0; i += 4) printf("%S", buff+i); }
Когда я пытаюсь скомпилировать его с помощью MSVC, я получаю следующие ошибки:
http://ahb.me/5T-
Комментирование GetLogicalDriveStrings(1024, buff); приводит к прекрасной компиляции кода
GetLogicalDriveStrings(1024, buff);
Более старая версия C требует, чтобы локальные переменные объявлялись в начале блока, перед такими вещами, как вызовы функций.Переместите int i; в начало функции, чтобы объявить buff.
int i;
buff
C ++ снял это требование, как и C99.
Измените его на:
#include <stdio.h> #include <Windows.h> int main() { int i; TCHAR buff[1024]; GetLogicalDriveStrings(1024, buff); for(i = 0; buff[i] != 0; i += 4) printf("%S", buff+i); }
Объявляйте переменные перед вызовом функций в C.
переместите «int i» в строку до или после «TCHAR buff [1024]», или переименуйте ваш main.c в main.cpp
btw, вы должны использовать функции / макросы серии _t послерешил использовать TCHAR:
_tprintf (_T ("..."))