|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.06.2011, 22:29 | #1 |
Новичок
Джуниор
Регистрация: 20.06.2011
Сообщений: 4
|
DirectDraw: программа вылетает!
Поиском воспользовался, похожей темы не нашел...
У меня такая проблема: написал пробную программу с применением DirectDraw, компилятор ошибок не обнаружил, все ок, но только я жму execute (ctrl+F5), как вываливается характерное сообщение типа "probe.exe вызвало ошибку и будет закрыто... бла-бла... отчет..." ну и прочая... Так я этот свой дурацкий код уже со многими сравнил: ну все похоже! Прямо не знаю, что делать... Кусок-то обычный: <...> LPDIRECTDRAW7 lpdd7; LPDIRECTDRAWSURFACE7 lpddprimary; DDSURFACEDESC2 ddsd; <...> ZeroMemory(&ddsd, sizeof(ddsd)); ddsd.dwSize=sizeof(ddsd); <...> lpdd7->CreateSurface(&ddsd, &lpddprimary, NULL); lpddprimary->Lock(NULL, &ddsd, DDLOCK_WAIT, NULL); <...> ...но результат неожиданный! Проблема, видимо, в Lock(), но какая? Прошу, помогите, а то уже третий день заснуть не могу!) Заранее спасибо! |
20.06.2011, 22:38 | #2 |
Новичок
Джуниор
Регистрация: 20.06.2011
Сообщений: 4
|
Ну я имею в виду, что тут вообще может быть? *я понимаю, что код у всех такой)))*
|
21.06.2011, 18:52 | #3 | |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
Цитата:
Надо проверку каждой функции делать, проверять на DD_OK. DirectDrawCreate SetCooperativeLevel CreateSurface DD_OK вернули ? Код:
|
|
21.06.2011, 19:20 | #4 |
Новичок
Джуниор
Регистрация: 20.06.2011
Сообщений: 4
|
Ок, сделаю так! Я пока писал только if(lpDDSPrimary->Lock(NULL, &ddsd, DDLOCK_WAIT, NULL)==DD_OK) {...} и не то чтобы там была ошибка и if был обойден, а опять все вылетело с тем же сообщением... Сдается мне, Lock() вообще не может нормально выполниться, если даже какую-нибудь ошибку вернуть не может.
|
21.06.2011, 22:06 | #5 |
Новичок
Джуниор
Регистрация: 20.06.2011
Сообщений: 4
|
Вот что получилось. Поставил я эти if'ы на каждую функцию, ошибка пришла от CreateSurface: "invalid parameter...". Раскомментировал все флаги ddsd, вернулось DD_OK. Затем ошибка вернулась от Lock: "call successful, but returned FALSE". Заметил опечатку, убрал.
Проблема, похоже, решена!)) Большое спасибо) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DOS на FASM. Программа быстро вылетает. | Stilet | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 01.11.2016 18:44 |
вылетает программа при использовании dll | radiohobbyt | Win Api | 2 | 25.04.2011 11:39 |
Вылетает программа на Ассемблере. | f@ntom | Помощь студентам | 1 | 02.12.2010 16:11 |
во время сортировки программа вылетает | MaRKer.nsk | Общие вопросы C/C++ | 3 | 10.04.2010 15:49 |
Программа на C вылетает по непонятным причинам | Lavisa | Общие вопросы C/C++ | 17 | 01.08.2009 18:45 |