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

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
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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


Стоп!

 

Ошибка исчезает только после того,как удаляю 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]

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

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

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

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