2014-09-04 2 views
0

Я создал проект Visual C++ и сделал кнопку в форме. Visual Studio генерирует этот метод для события нажатия кнопки:Visual C++ - вызов функции с помощью метода нажатия кнопки

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { 
} 

Этот код находится в файле Form1.h, никаких проблем пока нет. Однако, если я попытаюсь вызвать функцию, в методе событий, используя другие классы, например std :: cout (неважно, определяю ли я его в файле Form1.h или I # включить его из другого файла), компилятор дает мне ошибку (C2079).

Почему это происходит? Пожалуйста, будьте терпеливы, поскольку я являюсь полным noob в программном обеспечении Windows GUI, заранее заблаговременно, чтобы кто бы ни помог.

+0

Предоставление некоторых исходных кодов, которые не могут помочь. Однако, если вы включите iostream, вы можете заменить его на #include . Из приведенного выше кода вы используете C++/CLI, я полагаю. –

+0

Если вы используете fstream, как упомянуто, также убедитесь, что вы помещаете это в свой исходный файл 'using namespace std' –

+0

@MichaelPetch: Нет, абсолютно нет. Это файл заголовка ('Form1.h'). – MSalters

ответ

0

Ну, есть объяснение, которое является частью C2079. Это что-то вроде 'identifier' uses undefined class/struct/union 'name'. Это НЕ связано с программированием Windows или GUI. Проблема в том, что вы должны определить имя, которое используете.

Например, std::cout определен в <iostream>, который вы, вероятно, не указали. BTW, где именно вы ожидали std::cout? Обычный GUI не имеет текстовой консоли.

+0

Я включил iostream. В качестве примера я использовал 'std :: cout', мне это не нужно в моем проекте. – jndok

+0

iostream был устаревшим (был частью старой нестандартной библиотеки), и теперь требуется использовать заголовок fstream –

+0

Итак, попробуйте 'include ; используя пространство имен std'. Дополнительная информация о устаревших заголовках и заменах в VC++ см. Http://msdn.microsoft.com/en-us/library/aa984818(v=vs.71).aspx –

Смежные вопросы