Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Germanarih
3 / 3 / 0
Регистрация: 14.03.2011
Сообщений: 151

Не могу объявить вектор

01.07.2011, 18:48. Показов 1344. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Пытаюсь объявить вектор в классе. Возникают непонятные ошибки, которые ссылаются на строку объявления. Ошибки:

Ошибка 1 error C2143: синтаксическая ошибка: отсутствие ";" перед "<" c:\users\germanarih\desktop\exam_winapi\ exam_winapi\organize.h 16 1 Exam_WinAPI

Ошибка 2 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\germanarih\desktop\exam_winapi\ exam_winapi\organize.h 16 1 Exam_WinAPI

Ошибка 3 error C2238: непредвиденные лексемы перед ";" c:\users\germanarih\desktop\exam_winapi\ exam_winapi\organize.h 16 1 Exam_WinAPI

Далее все эти ошибки дублируются ещё один раз. Подскажите, что не так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Organize.h
 
#pragma once
#include "stdafx.h"
 
class Organize
{
public:
    Organize(void);
    static BOOL CALLBACK DlgProc(HWND hWnd, UINT mes, WPARAM wp, LPARAM lp);
    static Organize *ptr;
    BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
    void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
    void Cls_OnClose(HWND hwnd);
    HWND hDialog;
    vector <int> files;
 
    void Search (); // Ищет все файлы с маской *.dll в папке Plugins приложения.
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//Organize.cpp
 
#include "stdafx.h"
 
typedef void (*TVoidFunc)();   // Создали тип указателя на функцию.
typedef int (*TIntFunc)(HMODULE);
 
TVoidFunc f1; // Объявляем указатель на функцию
TIntFunc StartDialogDLL;
 
HINSTANCE lib;
 
Organize* Organize :: ptr = NULL;
 
Organize :: Organize (void)
{
    ptr = this;
}
 
void Organize :: Cls_OnClose(HWND hwnd)
{
    EndDialog (hwnd, 0);
}
 
BOOL Organize :: Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) 
{
    hDialog = hwnd;
    lib = LoadLibrary(TEXT("Plugins\\Exam_WinAPI_DLL.dll"));
    if(!lib)
    {
        MessageBox(0,TEXT("Не удалось открыть DLL"),TEXT("Error!"),MB_OK);
    }
    else
    {
        
        StartDialogDLL = (TIntFunc) GetProcAddress((HMODULE)lib, "Myf2");
        f1 = (TVoidFunc) GetProcAddress((HMODULE)lib, "Myf1");
        if(f1)
        {
            f1();
        }
    return TRUE;
}
 
void Organize :: Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    if (id == ID_INCLUDE)
    {
        TCHAR str[100];
        GetCurrentDirectory(100,str);
        MessageBox(hwnd,str,0,MB_OK);
    }
}
 
BOOL CALLBACK Organize :: DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
        HANDLE_MSG(hwnd, WM_CLOSE, ptr->Cls_OnClose);
        HANDLE_MSG(hwnd, WM_INITDIALOG, ptr->Cls_OnInitDialog);
        HANDLE_MSG(hwnd, WM_COMMAND, ptr->Cls_OnCommand);
        //HANDLE_MSG(hwnd, WM_TIMER, ptr->Cls_OnTimer);
    }
    return FALSE;
}
void Organize::Search()
{
    HANDLE file;
    TCHAR buf[100];
    if (!GetCurrentDirectory(100,buf))
    {
        if (IDOK == MessageBox (0,TEXT("Программа не может определить путь к папке Plugins!\nДля выхода нажмите Ok."),0,MB_OK))
        {
            exit(0);
        }
    }
    lstrcat(buf,TEXT("Plugins\\*.dll"));
    //file = FindFirstFile(buf,files);
    if (file)
    {
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//stdafx.h
 
// stdafx.h: включаемый файл для стандартных системных включаемых файлов
// или включаемых файлов для конкретного проекта, которые часто используются, но
// не часто изменяются
 
#pragma once
 
// Файлы заголовков Windows:
#include <windows.h>
#include <WindowsX.h>
 
// TODO. Установите здесь ссылки на дополнительные заголовки, требующиеся для программы
#include "resource.h"
#include "Organize.h"
#include <winbase.h> // Для исп. функции GetCurrentDirectory
#include <vector>
 
using namespace std;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// main.cpp
 
#include "stdafx.h"
 
 
 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszCmdLine, int nCmdShow)
{
    Organize obj;
 
    
    return DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), NULL, Organize::DlgProc);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2011, 18:48
Ответы с готовыми решениями:

Не могу объявить вектор в классе
Здравствуйте. Изучаю С++, пишу игру &quot;Покер&quot;.) Только начал и сразу столкнулся с проблемой. При объявлении массива стрингов с помощью...

Как правильно объявить вектор?
Только начинаю постигать STL. Подскажите, как заполнить случайными числами 1..9 значения контейнеров vector и map. И как вектор...

Как объявить вектор фиксированной длины в классе?
Нужно создать поле класса - вектор из двух элементов. Но код: class A { private: std::vector&lt;int&gt; v (2); ... } ...

4
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
01.07.2011, 20:25
Уберите using namespace std; из stdafx.h. Ему там в любом случае не место. Если очень хочется, то его можно перенести в Organize.cpp после инлуда.
Ну а в Organize.h надо указывать пространство имён явно, то есть std::vector<int>
0
 Аватар для Germanarih
3 / 3 / 0
Регистрация: 14.03.2011
Сообщений: 151
01.07.2011, 20:37  [ТС]
Сделал так. Те же ошибки, плюс ещё одна: vector: не является членом std.
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
01.07.2011, 21:34
Значит <vector> в stdafx.h не подключается-таки нормально. Стоит этот include перенести либо в Organize.h, либо подключать в .cpp перед Organize.h

Добавлено через 7 минут
Стоп. Посмотрел внимательно на stdafx.h
Вот уж кому там точно не место, так это пользовательскому Organize.h
1
 Аватар для Germanarih
3 / 3 / 0
Регистрация: 14.03.2011
Сообщений: 151
01.07.2011, 22:26  [ТС]
Убрал из stdafx.h Organize.h и вектор подключился нормально. Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.07.2011, 22:26
Помогаю со студенческими работами здесь

Не удается объявить вектор пар как свойство класса
class MyClass { private: std::vector&lt;pair&lt;unsigned char, float&gt;&gt; Symbols; public: }

Как объявить вектор векторов, если размеры изначально неизвестны?
Как правильно объявить вектор векторов, если размеры изначально неизвестны? и как заносить значения ?

Не могу объявить итератор
Смотрел даже в инете как люди это делают - у меня не работает, выдает ошибки. Почему? 22 строка #pragma once #include...

Не могу объявить шаблонный класс
Здравствуйте, имеется шаблонный класс динамического массива: template&lt;typename T&gt; class DynamicArray { public: ...

Не могу объявить массив указателей на объект
Здравствуйте! Такой вопрос. При объявлении массива указателей на объект появляются 3 ошибки. void Cindex::merge(Ckey *A, int l, int m, int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru