Shared-секции в DLL. Разделяемые переменные
От: Barbar1an Украина  
Дата: 04.03.04 10:38
Оценка:
Не могу правильно определить разделяемую переменную в DLL. Написал примерно следующее в DLL:

#pragma data_seg (".myseg")
__declspec(dllexport) CMyClass* myclass = NULL;
__declspec(dllexport) int myint = 0;
#pragma data_seg()
#pragma section(".myseg",RWS)

Ниже в этой DLL определен фильтр СВТ хука, в которой обе эти переменные используются. Так вот myint используется нормально, а myclass глючит как-то, а именно данные объявленные внутри класса похоже что не видны в другом процессе.
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re: Shared-секции в DLL. Разделяемые переменные
От: SergH Россия  
Дата: 04.03.04 10:45
Оценка:
Здравствуйте, Barbar1an, Вы писали:

B>Не могу правильно определить разделяемую переменную в DLL. Написал примерно следующее в DLL:


B>#pragma data_seg (".myseg")

B> __declspec(dllexport) CMyClass* myclass = NULL;
B> __declspec(dllexport) int myint = 0;
B>#pragma data_seg()
B>#pragma section(".myseg",RWS)

B>Ниже в этой DLL определен фильтр СВТ хука, в которой обе эти переменные используются. Так вот myint используется нормально, а myclass глючит как-то, а именно данные объявленные внутри класса похоже что не видны в другом процессе.


Это не удивительно, указатель-то общий, а вот данные — нет... Сейчас поищу, когда-то похожий вопрос поднимался и я что-то хорошее отвечал
Делай что должно, и будь что будет
Re: Shared-секции в DLL. Разделяемые переменные
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.03.04 10:59
Оценка:
Здравствуйте, Barbar1an, Вы писали:

B>Ниже в этой DLL определен фильтр СВТ хука, в которой обе эти переменные используются. Так вот myint используется нормально, а myclass глючит как-то, а именно данные объявленные внутри класса похоже что не видны в другом процессе.


Раз сто подымался вопрос на этом форуме.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.