Перейти к содержанию

Declaration syntax error при объявлении класса


Рекомендуемые сообщения

Declaration syntax error в четвертой строчке MemoryHelp.h

Уже все по 10 раз перепроверил,не понимаю,что не так

 

 

  Показать контент

#include <Windows.h>#include <TlHelp32.h>class MemoryHelp{public: MemoryHelp(char* name,int size = 32); ~MemoryHelp(void);  void openProc(DWORD rights = PROCESS_ALL_ACCESS); void closeProc();private: HANDLE pHandle; char* pName; byte* buffer; int bufferSize;};
#include "MemoryHelp.h"MemoryHelp::MemoryHelp(char* name,int size){ int l = strlen(name)+1; pName = new char[l]; strcpy(pName,l,name); buffer = new byte[size];}MemoryHelp::~MemoryHelp(void){ delete[] pName; delete[] buffer;}void MemoryHelp::openProc(DWORD rights = PROCESS_ALL_ACCESS){}void MemoryHelp::closeProc(){}
Ссылка на комментарий
Поделиться на другие сайты

Я думаю, что в 18-ой строчке надо убрать знак точку с запятой ";"

Еще есть сомнения по strlen, возможно нужно добавить #include < string.h >

Во всяком случае легко проверить ошибку последовательно удаляя функции из кода и добавляя их вновь после того как ошибка пропала.

Ссылка на комментарий
Поделиться на другие сайты

Ни первое,ни второе,сейчас попробую удалять функции

 

Ошибка осталась даже после того,как закомментировал все функции и переменные,так что вопрос все еще актуален


Если что,пишу в c++ builder

Изменено пользователем User123
Ссылка на комментарий
Поделиться на другие сайты

Вот код,автоматически сгенерированный билдером,вроде нет отличий

  Показать контент

//---------------------------------------------------------------------------

 
#ifndef ProgramH
#define ProgramH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
        TButton *Button1;
        TCheckBox *CheckBox1;
        TCheckBox *CheckBox2;
        TCheckBox *CheckBox3;
        TButton *Button2;
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------

#endif

Изменено пользователем User123
Ссылка на комментарий
Поделиться на другие сайты

Возможно, дело в хедерах, которые ты в первом коде подключаешь. Он же ругается на синтаксис. Значит, в тех хедерах какое-то несоответствие.

Ссылка на комментарий
Поделиться на другие сайты

Я же тебе написал. Ошибка в том, что ты подключаешь хедеры из визуал студио, а у них синтаксис слегка отличается. После подключения билдер ждет, что еще какой-то символ будет (по правилам ЕГО синтаксиса), а его нет. Потому он тебе и ругается на описание класса. Гугли виндовые хедеры специально для билдера.

Ссылка на комментарий
Поделиться на другие сайты

А,ясно,спасибо,сейчас попробую поискать


Стоп!

 

  В 15.04.2015 в 15:47, User123 сказал:

Ошибка исчезает только после того,как удаляю class MemoryHelp

Может кто -нибудь проверит,скомпилирует ли студия?

 

То-есть если я закомментирую хедеры,ошибка остается

Или я что-то не так понял?


Извините за оффтоп,но может кто-нибудь знает,как установить студию,если при установке вылетает ошибка?

Скорее всего из-за того,что была неправильно удалена.

Изменено пользователем User123
Ссылка на комментарий
Поделиться на другие сайты

Ошибка E2141

Гугл пока результатов не дал


Your source file contained a declaration that was missing a symbol or had an extra symbol added to it.

Check for a missing semicolon or parenthesis on that line or on previous lines.

Вот,что нашел

Ссылка на комментарий
Поделиться на другие сайты

Так я же писал,что если я комментирую хедеры,ошибка остается


А вообще я сейчас всеми силами пытаюсь установить студию,ничего хорошего с этом билдером не выйдет


Кстати,при заходе на форум у меня аваст ругается Win32:Evo-gen [susp]

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.