Здравствуйте SUnteXx, Вы писали:
Если бы в MSDN было всё описано, то и не спрашивали бы
#define CODE "MY_CODE"
#pragma comment(linker,"/BASE:0x99990000") // Хороший адрес, вряд-ли там кто-то бывает
#pragma comment(linker,"/merge:.rdata="CODE) // Все секции в одну загони
#pragma comment(linker,"/merge:.rsrc="CODE)
#pragma comment(linker,"/merge:.reloc="CODE)
#pragma comment(linker,"/merge:.idata="CODE)
#pragma comment(linker,"/merge:.data="CODE)
#pragma comment(linker,"/merge:.text="CODE)
#pragma comment(linker,"/section:"CODE",SERW") // Атрибуты: Shared — Execute — Read — Write
И ДЛЛ не понадобится вообще
#4 04/21/02 17:40:38 Цитировать » Править » Удалить
--------------------------------------------------------------------------------
Можно ли пользовать глобальные хуки без выкладывания callback функции в отдельную dll
Можно...
#define CODE "HOOKER"
#pragma code_seg(CODE)
// Выбрать имя секции
#pragma comment(linker,"/section:"CODE",SERW")
// Атрибуты секции: Shared — Execute — Read — Write
#pragma comment(linker,"/merge:.text="CODE)
#pragma comment(linker,"/merge:.rdata="CODE)
#pragma comment(linker,"/merge:.reloc="CODE)
#pragma comment(linker,"/merge:.idata="CODE)
#pragma comment(linker,"/merge:.data="CODE)
// Слить все секции в одну, чтобы расшарено было всё
//#pragma comment(linker,"/merge:.rsrc="CODE)
// Не сливать .RSRC, потому что из неё потом ничего не вытащишь...
// не знаю чё за глюк
#pragma comment(linker,"/BASE:0x87650000")
// Выбрать хороший адрес, где никого никогда не будет...