Не могу правильно определить разделяемую переменную в 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 г.
Здравствуйте, 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 глючит как-то, а именно данные объявленные внутри класса похоже что не видны в другом процессе.
Это не удивительно, указатель-то общий, а вот данные — нет... Сейчас поищу, когда-то похожий вопрос поднимался и я что-то хорошее отвечал