Какой проект VS 2010 C я должен выбрать для компиляции простого консольного приложения Borland C 5?

#c #visual-studio-2010 #c builder

#c #visual-studio-2010 #c builder

Вопрос:

У меня есть простое консольное приложение Win32 (без vcl), написанное на Borland C 5, теперь я хочу скомпилировать то же приложение в VS 2010. но я новичок в этой IDE и не знаю, как запустить код в VS. Я попытался выбрать консольное приложение Win32. но даже я очень простое приложение, подобное этому

 #include <iostream.h>
#pragma hdrstop

#pragma argsused
int main(int argc, char* argv[])
{
    cout << "Hello" << endl;
    getchar();
    return 0;
}
  

не компилируется в VS.

Итак, какой проект VS 2010 C я должен выбрать для компиляции простого консольного приложения Borland C 5? или мне нужно изменить свое приложение, чтобы использовать VS C ?

Ответ №1:

<iostream.h> устарел, и VS10 его не поддерживает, используйте <iostream> вместо этого, и вам также понадобится std::cout , std::endl , и т. д. т. е.

 #include <iostream>    
#pragma hdrstop

// #pragma argsused // I don't believe this is valid in VS10

int main(int argc, char* argv[])
{
    std::cout << "Hello" << std::endl;
    std::cin.get();
    return 0;
}
  

В качестве альтернативы, если вы не хотите добавлять префикс к использованию вашей библиотеки std:: , вы можете поместить объявление using вверху, после заголовков:

 using namespace std;
  

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

1. Ни один из #pragma используемых s не действителен в VC , поэтому их нужно удалить.

2. Да, и для устаревшего кода вы можете поместить single using namespace std; вверху. Не лучшая практика для нового кода, но в вашем случае это имеет смысл.

3. @ildjarn: hdrstop, по-видимому, есть.

4. Код не компилируется, если я не добавляю #include "stdafx.h" его в исходный код, обязательно ли это?

5. @Salvador: Это если вы скомпилируете его для использования предварительно скомпилированного заголовка, а имя вашего предварительно скомпилированного заголовка — «stdafx.h». Оба этих параметра используются по умолчанию при создании нового проекта.