Что я не понимаю в использовании strcpy() в Visual Studio 2010?

#include <string.h>

sdi12CRC::sdi12CRC()
  {
    CRC = 0;
    responseToDCommandWithoutCRC = new char[MAX_D_COMMAND_RESPONSE_SIZE];
    responseToDCommandWithCRC = new char[MAX_D_COMMAND_RESPONSE_SIZE];
    asciiCRC = new char[ASCII_CRC_SIZE];
    strcpy(responseToDCommandWithoutCRC,"");
    strcpy(responseToDCommandWithCRC,"");
    strcpy(asciiCRC,"");
  }

Выше приведен фрагмент кода из программы на C++, которую я написал и протестировал некоторое время назад с помощью компоновщика Borland C++. Оно работает. Сейчас я изучаю Visual Studio 2010, поэтому я решил использовать свою прошлую работу, чтобы помочь узнать о Visual Studio.

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

Warning 1   warning C4627: '#include <stdlib.h>': skipped when looking for precompiled header use

Error   4   error C3861: 'strcpy': identifier not found

Что здесь дает? Разве string.h не является обязательным заголовком для strcpy? Таким образом, strcpy() должен компилироваться. Чего я не понимаю или не знаю?

Любая помощь будет принята с благодарностью.


person Mike Jablonski    schedule 19.05.2012    source источник


Ответы (2)


Проблема в том, что вы настроили проект на использование предварительно скомпилированных заголовков, но вы их не используете. Просто настройте параметры своего проекта, чтобы не использовать предварительно скомпилированные заголовки.

person K-ballo    schedule 19.05.2012

Попробуйте явно добавить #include <stdlib.h>, а затем #include <string.h>

person paulsm4    schedule 19.05.2012