PDA

Просмотр полной версии : FileMapping



Nowichok
07.12.2006, 22:50
Проблема с FileMapping. Здесь выкладывать код не буду, т.к. будет тяжело читать. Кину ссылку на прогу, чтобы можно было легче понять мою проблему (проблема аналогична, что и в этой программе)

http://www.gamedev.ru/download/?id=4663 (сорри, чо-то файл сюда не загрузился сам... привожу ссылку на него).

Там две АБСОЛЮТНО одинаковые программы, работающие с хуком WH_GETMESSAGE и используют FileMapping. Кому не лень, пробегитесь глазами по КОДУ программ (он короткий). Если пустить обе программы и установить хки, то они работают...до N-го времени...а потом вылазит ошибка (когда приходит сообщение в аську ,агента..пускается игра и т.п.).
Я уже 3-й день бьюсь над этой проблемой, не понимаю, что не так...
Помогите, плз, кто чем может.

Hawk
12.12.2006, 15:34
Какая ошибка то выходит ?
И CreateFile надо проверять на INVALID_HANDLE_VALUE(0xFFFFFFFF) а не на 0 при ошибке

Nowichok
12.12.2006, 15:40
"Инструкция по адресу ... обратилась к памяти по адресу ... . Память не может быть written"

или "Readen" ....
На данный момент пытаюсь по-другоме решить мою проблему..без файлмэппинга. Но хотелось бы узнать, в чём косяк здесь.

А у вас что, ошибка не выводится в этих программах ??

Hawk
12.12.2006, 20:01
Насчет INVALI_HANDLE_VALUE я не прав был, все привильно там, перепутал с CreateFile. А запустить не могу, т.к. нету Delphi или что это

Hawk
12.12.2006, 20:10
А почему у тебя
SysMsgProc(code : integer; wParam : word; lParam : longint)

word на паскале это же 16 бит? т.е. short ? А должен быть 32 битное, видимо на паскале это integer или longint. Тебе лучше знать. Из-за этого вполне могло все падать

Romeo
12.12.2006, 20:55
Я тоже за то, что это должно быть longint.

Nowichok
13.12.2006, 21:40
Исправил на DWORD для надёжности...но это проблему не решило. Я уже отчаился с этим..пытаюсь сделать не через файлмэппинг, а через WinApi функции с воей программе..но и там проблем хватает. Хоть какой-нибудь бы метод доделать до конца....