none
Подключение заголовочных файлов в Windows Forms(C++) RRS feed

  • Вопрос

  • Подскажите, как подключить заголовочный файл в проекте Windows Forms. Создаю файл header.h, определяю в нем небольшой класс и подключаю в главном файле проекта cstring и этот header.h. При компиляции возникает ошибка visual studio 2010\projects\visualisation\visualisation\Form1.h(3): error C2143: синтаксическая ошибка: отсутствие ";" перед "namespace".

    Объясните пожалуйста что не так. Я начинающий, так что прошу сильно не пинать.

    header.h

    class c1
    {
    	int sp;
    	int vd;
    	char pt[80];
    public:
    	c1() {sp = 2; strcpy(pt, "\\u.jpg");};
    	c1(int s, char p[80]) {sp = s; strcpy(pt,p);};
    	~c1() {};
    
    	int getSp() {return sp;};
    	char getPt() {return pt[80];};
    	int getVd() {return vd;};
    }
    
    

    Main.cpp (Начало)

    // Main.cpp: главный файл проекта.
    #include "stdafx.h"
    #include <cstring>
    #include "header.h"
    #include "Form1.h"
    
    using namespace Main;
    
    


    Form1.h (Начало)

    #pragma once
    
    namespace Main{
    
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    
    	/// <summary>
    	/// Сводка для Form1
    	/// </summary>
    


     

    8 ноября 2011 г. 18:17

Ответы

  • В C++ обязательно должна ставиться точка с запятой в конце объявления класса:

    class c1
    {
        ....
    };
    

     

    Позвольте в свою очередь спросить, чем вызвано применение нативного C++ и C++/CLI вместе?

    Ещё вот этот момент:

    char getPt() {return pt[80];};
    

    Явно ошибка. Что тут должно возвращаться?

    • Помечено в качестве ответа Sanyokbig 8 ноября 2011 г. 19:25
    • Снята пометка об ответе Sanyokbig 8 ноября 2011 г. 19:26
    • Помечено в качестве ответа Abolmasov Dmitry 11 ноября 2011 г. 6:47
    8 ноября 2011 г. 19:17

Все ответы

  • В C++ обязательно должна ставиться точка с запятой в конце объявления класса:

    class c1
    {
        ....
    };
    

     

    Позвольте в свою очередь спросить, чем вызвано применение нативного C++ и C++/CLI вместе?

    Ещё вот этот момент:

    char getPt() {return pt[80];};
    

    Явно ошибка. Что тут должно возвращаться?

    • Помечено в качестве ответа Sanyokbig 8 ноября 2011 г. 19:25
    • Снята пометка об ответе Sanyokbig 8 ноября 2011 г. 19:26
    • Помечено в качестве ответа Abolmasov Dmitry 11 ноября 2011 г. 6:47
    8 ноября 2011 г. 19:17
  • Спасибо вам большое, все было из-за точки с запятой.

     

    Ещё вот этот момент:

    char getPt() {return pt[80];};
    


    Явно ошибка. Что тут должно возвращаться?

     

    Здесь я хотел добавить функцию по возвращению текстовой информации, определенной конструктором

    c1() {sp = 2; strcpy(pt, "\\u.jpg");};
    • Изменено Sanyokbig 8 ноября 2011 г. 19:31
    8 ноября 2011 г. 19:26