#include <vector>
struct TMouseHook{
HWND hWind;
HHOOK Hook;
};
#pragma data_seg(".AAA")
vector <TMouseHook> hooklist(1,NULL);
#pragma data_seg()
#pragma comment(linker, "/section:.AAA,rws")
использование вектора в #pragma data_seg
Код:
Может есть какие то ограничения на содержимое data_seg и векторы не допускаются?
Цитата:
vector <TMouseHook> hooklist(1,NULL);
Итак, мы создали в стеке объект - вектор структуры. И тут же пытаемся его инициировать, передавая в конструктор два числа.
Вопрос - а такой конструктор вооще есть?
Цитата: el scorpio
Итак, мы создали в стеке объект - вектор структуры.
Здесь объект будет не в стеке;).
MSDN - vector(
size_type _Count,
const Type& _Val
); - инициализируем 1 элемент значением NULL
"Здесь объект будет не в стеке." - а где же тогда? Прдскажите плиз :)
Да, эту проблему выявил. ::std::vector. Теперь и компилятор не ругается :)
Цитата: olyx
"Вопрос - а такой конструктор вооще есть?"
MSDN - vector(
size_type _Count,
const Type& _Val
); - инициализируем 1 элемент значением NULL
MSDN - vector(
size_type _Count,
const Type& _Val
); - инициализируем 1 элемент значением NULL
А NULL разве имеет тип const TMouseHook&?
Если уж возникла необходимость инициализировать вектор таким способом, то так будет, имхо, правильнее:
Код:
#include <vector>
struct TMouseHook{
HWND hWind;
HHOOK Hook;
};
#pragma data_seg(".AAA")
TMouseHook nullHook = {NULL, NULL};
std::vector <TMouseHook> hooklist(1, nullHook);
#pragma data_seg()
#pragma comment(linker, "/section:.AAA,rws")
struct TMouseHook{
HWND hWind;
HHOOK Hook;
};
#pragma data_seg(".AAA")
TMouseHook nullHook = {NULL, NULL};
std::vector <TMouseHook> hooklist(1, nullHook);
#pragma data_seg()
#pragma comment(linker, "/section:.AAA,rws")
Цитата: olyx
"Здесь объект будет не в стеке." - а где же тогда? Прдскажите плиз :)
Как где? Как будто #pragma data_seg не ты писал:) и не знаешь, что это такое. Ну естественно он будет в секции .AAA.
спасибо! попробую :)