Error with lpdd createsurface

Error with lpdd createsurface gens Sega Mega Drive Sega Mega Drive — 16-битная игровая приставка, выпущенная фирмой Sega в 1988 году в Японии, и в 1990 — в Европе и прочих странах. В Северной Америке приставка была выпущена под именем Genesis, так как Sega не смогла зарегистрировать там торговую марку Mega Drive. Центральный процессор: […]

Содержание

  1. Error with lpdd createsurface gens
  2. вопрос про SetDisplayMode
  3. Error with lpdd createsurface gens
  4. Thread: Problem with CreateSurface function (DirectDraw)
  5. Problem with CreateSurface function (DirectDraw)

Error with lpdd createsurface gens

Sega Mega Drive

Sega Mega Drive — 16-битная игровая приставка, выпущенная фирмой Sega в 1988 году в Японии, и в 1990 — в Европе и прочих странах. В Северной Америке приставка была выпущена под именем Genesis, так как Sega не смогла зарегистрировать там торговую марку Mega Drive.

Центральный процессор: 16-битный Motorola 68000 (или полностью совместимый)
Тактовая частота: 7,61 МГц в PAL-приставках, 7,67 МГц в NTSC-приставках.

Дополнительный процессор: 8-битный Zilog Z80 (или полностью совместимый)
Тактовая частота: 3,55 МГц в PAL-приставках, 3,58 МГц в NTSC-приставках.
Используется как основной процессор в режиме совместимости с Sega Master System.

Загрузочное ПЗУ: 2 КБ
Известно как «Trademark Security System» (TMSS)
Во время запуска приставки выполняет проверку на наличие определённого кода, выдаваемного только официальным разработчикам

Таким образом, нелицензионные игры без кода не могут быть использованы Если игра обладает необходимой лицензией, ПЗУ выведет на экран надпись «Produced by or under license from Sega Enterprises Ltd.» («Произведено компанией Sega Enterprises Ltd., либо по её лицензии») Загрузочное ПЗУ отсутствует в ранних версиях приставки Некоторые ранние игры, разработанные без учёта TMSS, могут оказаться неработоспособными в поздних версиях приставки

Основное ОЗУ: 64 КБ
Часть адресного пространства M68000

Видеопамять: 64 КБ
Центральный процессор не может обращаться к ней напрямую — только посредством VDP (см. ниже)

Дополнительное ОЗУ: 8 КБ
Часть адресного пространства Z80
Используется как основное ОЗУ в режиме совместимости с Sega Master System

Область памяти картриджа: до 4 МБ (32 Мбит)
Часть адресного пространства M68000
Игровые картриджи объёмом более 4 МБ должны использовать переключение банков памяти

Видеоконтроллер Sega Mega Drive (VDP, Video Display Processor), отображающий графику фона и объекты, является улучшенной версией видеоконтроллера Sega Master System, созданного, в свою очередь, на базе Texas Instruments TMS9918.

Слои: 4 (2 прокручиваемых слоя графики фона, 1 слой спрайтов, 1 слой ‘окна’)

Спрайты: До 80 одновременно отображаемых, в зависимости от экранного режима, спрайтов (до 20 на одной горизонтальной строке)

Палитра: 512 цветов

Одновременно отображаемые цвета: для палитры выделены 64 девятиразрядных слова ОЗУ. Всего доступно 4 палитры по 16 цветов, при этом один цвет в каждой палитре всегда прозрачен, а также присутствует общий цвет фона. Это позволяет отображать до 61 цвета одновременно (и до 1536 с использованием растровых эффектов или затенения/высветления).

Разрешение экрана: До 320Ч240 (40Ч30 ячеек) для PAL-версии, и до 320Ч224 (40Ч28 ячеек) для NTSC-версии
Чересстрочные режимы могут обеспечивать удвоение разрешения экрана по вертикали. (к примеру: 320Ч448 для NTSC-режима, 320×480 для PAL-режима). Используется в Sonic 2 в режиме разделённого на две части экрана.

Основной звуковой чип: Yamaha YM2612
Шесть каналов с частотной модуляцией, по четыре оператора на каждый; шестой канал может быть использован как 8-разрядный ЦАП, для программного воспроизведения сэмплов
Программируемые генератор сверхнизкой частоты (LFO) и стереопозиционирование.

Дополнительный звуковой чип: Texas Instruments SN76489
Четырёхканальный PSG (Programmable Sound Generator, Программируемый Звуковой Генератор)
Три канала с квадратной формой сигнала, один шумовой канал
Программируемые тон/шум и затухание
Используется в режиме совместимости с Sega Master System

Антенный выход
Аудио-видео выход (композитный и RGB )

Адаптер
10В 1,2А
более поздних версий 9В 850мА

Источник

вопрос про SetDisplayMode

в SDK Documentation сказано,

HRESULT SetDisplayMode(
DWORD dwWidth,
DWORD dwHeight,
DWORD dwBPP,
DWORD dwRefreshRate,
DWORD dwFlags);

но эта функция определена (в VC.NET) на самом деле вот так
virtual IDirectDraw::SetDisplayMode(DWORD)=0;
так как же её использовать то??
заранее спасибо.

SetDisplayMode(
DWORD dwWidth,
DWORD dwHeight,
DWORD dwBPP,
DWORD dwRefreshRate,
DWORD dwFlags);

я же говорю компилятор выдаёт что вообще про эти параметры ничего не знает, читай выше как там определина функция.

В SDK она объявлена глобально. а ты приводишь пример объявления этой же функции но у класса IDirectDraw. Это две разные вещи.

т.е. если тебе нужно вызвать первую функцию то попробуй так — ::SetDisplayMode(. )

не хочет =(
а вот кстате какая ошибка
error C2660: ‘IDirectDraw::SetDisplayMode’ : function does not take 5 parameters

Угу, так и должен сказать, ты же вызываешь метод IDirectDraw, а у него всего 3 параметра однако;-)

Ты для начала скажи с какой версией DirectDraw работаешь, если с 3й то должно быть 3 параметра, если с 7й то должно быть IDirectDraw7::SetDisplayMode

через 7-й и 4-й пытался тоже самое, через третий выдаёт тоже что не может взять эти 3 параметра.

Можешь продемонстрировать пример кода как ты это делаешь и список подключаемых файлов?

#include «ddraw.h»
либа ddraw.lib подключается визуальными средствами

далее
IDirectDraw7 *dd;
DirectDrawCreate(.
dd->SetCoopirativeLevel(.
и вот тут
dd->SetDysplayMode(800,600,16,0,0); //вот тут он и ругается.

странно, открыл херед ddraw.h мотюкаться перестал,
НО теперь после вызова этой вункции при выполнении кода выдаёт
Run-Time Check Fialure #0 — The value of ESP was not properly saved
across a function call. This is usually a result of calling a function declared
with one calling convention with a function pointer declared with a different
calling convention.
как вообще бороться с такой ошибкой?? чё ему не нравиться то?

не ужели ни кто не сталкивался с подобной ошибкой?

if (FAILED(lpdd->SetCooperativeLevel(main_window_handle,
DDSCL_FULLSCREEN | DDSCL_ALLOWMODEX |
DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT)))
return(0);

// set display mode to 640x480x16
if (FAILED(lpdd->SetDisplayMode(640, 480, 16,0,0)))
return(0);

при компиляции выдаёт ошибку
error LNK2001: unresolved external symbol _IID_IDirectDraw7

(to 11) спасибо и всем кто откликнулся, проблема была действительно в том что ноды было использовать Ex функцию.
а вот как создать первичную поверхноть так, что бы сразу создавалась и вторичная?
вот код
ddraw->SetCooperativeLevel(m_hWnd,DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE ) ;
fsurface=NULL;
DDSURFACEDESC2 surfacedesc=<0>;
surfacedesc.dwSize=sizeof(DDSURFACEDESC);
surfacedesc.dwBackBufferCount=1;
surfacedesc.dwFlags=DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
surfacedesc.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
if (ddraw->CreateSurface(&surfacedesc,&fsurface,NULL)!=DD_OK) return FALSE;
но создать поверхность почему то не получается. в чём может быть причина?

DDSURFACEDESC2 ddsd;
LPDIRECTDRAWSURFACE7 lpddsprimary = NULL; //первичная
LPDIRECTDRAWSURFACE7 lpddsback = NULL; //вторичная

Источник

Error with lpdd createsurface gens

Sega Mega Drive

Sega Mega Drive — 16-битная игровая приставка, выпущенная фирмой Sega в 1988 году в Японии, и в 1990 — в Европе и прочих странах. В Северной Америке приставка была выпущена под именем Genesis, так как Sega не смогла зарегистрировать там торговую марку Mega Drive.

Центральный процессор: 16-битный Motorola 68000 (или полностью совместимый)
Тактовая частота: 7,61 МГц в PAL-приставках, 7,67 МГц в NTSC-приставках.

Дополнительный процессор: 8-битный Zilog Z80 (или полностью совместимый)
Тактовая частота: 3,55 МГц в PAL-приставках, 3,58 МГц в NTSC-приставках.
Используется как основной процессор в режиме совместимости с Sega Master System.

Загрузочное ПЗУ: 2 КБ
Известно как «Trademark Security System» (TMSS)
Во время запуска приставки выполняет проверку на наличие определённого кода, выдаваемного только официальным разработчикам

Таким образом, нелицензионные игры без кода не могут быть использованы Если игра обладает необходимой лицензией, ПЗУ выведет на экран надпись «Produced by or under license from Sega Enterprises Ltd.» («Произведено компанией Sega Enterprises Ltd., либо по её лицензии») Загрузочное ПЗУ отсутствует в ранних версиях приставки Некоторые ранние игры, разработанные без учёта TMSS, могут оказаться неработоспособными в поздних версиях приставки

Основное ОЗУ: 64 КБ
Часть адресного пространства M68000

Видеопамять: 64 КБ
Центральный процессор не может обращаться к ней напрямую — только посредством VDP (см. ниже)

Дополнительное ОЗУ: 8 КБ
Часть адресного пространства Z80
Используется как основное ОЗУ в режиме совместимости с Sega Master System

Область памяти картриджа: до 4 МБ (32 Мбит)
Часть адресного пространства M68000
Игровые картриджи объёмом более 4 МБ должны использовать переключение банков памяти

Видеоконтроллер Sega Mega Drive (VDP, Video Display Processor), отображающий графику фона и объекты, является улучшенной версией видеоконтроллера Sega Master System, созданного, в свою очередь, на базе Texas Instruments TMS9918.

Слои: 4 (2 прокручиваемых слоя графики фона, 1 слой спрайтов, 1 слой ‘окна’)

Спрайты: До 80 одновременно отображаемых, в зависимости от экранного режима, спрайтов (до 20 на одной горизонтальной строке)

Палитра: 512 цветов

Одновременно отображаемые цвета: для палитры выделены 64 девятиразрядных слова ОЗУ. Всего доступно 4 палитры по 16 цветов, при этом один цвет в каждой палитре всегда прозрачен, а также присутствует общий цвет фона. Это позволяет отображать до 61 цвета одновременно (и до 1536 с использованием растровых эффектов или затенения/высветления).

Разрешение экрана: До 320Ч240 (40Ч30 ячеек) для PAL-версии, и до 320Ч224 (40Ч28 ячеек) для NTSC-версии
Чересстрочные режимы могут обеспечивать удвоение разрешения экрана по вертикали. (к примеру: 320Ч448 для NTSC-режима, 320×480 для PAL-режима). Используется в Sonic 2 в режиме разделённого на две части экрана.

Основной звуковой чип: Yamaha YM2612
Шесть каналов с частотной модуляцией, по четыре оператора на каждый; шестой канал может быть использован как 8-разрядный ЦАП, для программного воспроизведения сэмплов
Программируемые генератор сверхнизкой частоты (LFO) и стереопозиционирование.

Дополнительный звуковой чип: Texas Instruments SN76489
Четырёхканальный PSG (Programmable Sound Generator, Программируемый Звуковой Генератор)
Три канала с квадратной формой сигнала, один шумовой канал
Программируемые тон/шум и затухание
Используется в режиме совместимости с Sega Master System

Антенный выход
Аудио-видео выход (композитный и RGB )

Адаптер
10В 1,2А
более поздних версий 9В 850мА

Источник

Thread: Problem with CreateSurface function (DirectDraw)

Thread Tools
Search Thread
Display

Problem with CreateSurface function (DirectDraw)

I’ve changed out the error flags until I found the one that the CreateSurface function returned. I cannot figure out why this is happening and I have no idea how to fix it. Any help?

DirectDraw is dead. Face it. Use D3D.

Since you usually want to have a back buffer in addition to the primary surface, you may consider something like this:

Why are you using deprecated DirectDraw interfaces? In the new D3D SDK they specifically state that while they attempt to maintain compatibility with previous versions, this can no longer be guaranteed as it relates to DirectDraw interfaces. D3D will be backwards compatible but since DirectDraw is now inside of D3D, they can no longer guarantee it’s backwards compatibility and they are no longer supporting DirectDraw or addressing DirectDraw issues — neither are the video card manufacturers.

DirectDraw is still there and still functional. Face it. -I- for one want to learn the roots.

. yet not supported. Future drivers may not even implement the old interfaces correctly so you are treading on thin ice using it.

Just use Direct3D for 2D. It’s simple. And you can get to the surface using IDirect3DTexture9 to get a pointer to the IDirect3DSurface9 interface.

But the days of locking and unlocking surfaces for the most part are gone. Everything can be done via shaders, SetRenderTarget() and render to texture operations.

Well Bubba, I’ll take your word for it. Only trouble is, now I need to find some resources that teach the Direct3D for 2D interfaces, since this book I have is completely horrible.

Of course any help from the folks on here would be appreciated. With DirectDraw I was able to create the object and pointer, but the CreateSurface function errored when I called it. Now I am stuck between Scylla and Charybdis.

You wont really be able to do 2d stuff with Direct3D it will just look like its in 2d. They decided to kill DirectDraw becouse rotating a bitmap is crazy slow, so now you just create a graphical object and blit the bitmap on.

There are simple ways of getting 2d into 3d. Its honestly not as hard as you might think. Good tutorials are onGamedev.

And Bubba is right, DD is encapsulated inside of D3D, in essence you could think of 2d as being 3d with a constantly 0 z-vector. but thats oversimplyfying I suppose. In any event, check it out, you’ll tons of good stuff, or even check out stuff on this forum.

Источник

Ошибка. CreateImage — CreateSurface 0x88760233.


Ошибка. CreateImage — CreateSurface 0x88760233.

Ошибка в подсистеме видео вывода. CreateImage — CreateSurface 0x88760233.

Почитал форум — directdraw действительно недоступно
глубина цвета 32 бита. ускрение максимальное

установил новый directx 9.0c (windows xp sp3)
установил новые драйвер на видеокарту nVidia 9500 GT

все равно directx выдает ошибку hresult = 0x887601c2

обновил софт с 8.6сп1 на 8.7
не помогло

вынял плату powerVN8 — заработал и directx и софт

вставил плату обратно — не работает

удалил драйвера платы.
установил драйвера с образа 8.7 — не работает

что посоветуете?

Olgerd
 
Сообщений: 4

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение Olgerd » 27 авг 2011, 12:03

Вот еще что вспомнил: в свойствах камеры — картинка показывается

Olgerd
 
Сообщений: 4

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение Kly » 27 авг 2011, 15:28

Мне когда-то тех поддержка говорила, что для карт Nvidia нужно выставлять не полное аппаратное ускорение, а на 1 позицию меньше. А иначе видео подтормаживает.

Аватар пользователя
Kly
Опытный пользователь
 
Сообщений: 190
Откуда: Украина, Киев
  • Сайт

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение Olgerd » 27 авг 2011, 17:20

Подтормаживает, не подтормаживает — оно ваще не работает :(

пойду проверять
если до понедельника ничего не решу — буду пробовать другой видик ставить. видел какая то нвидия 230 валялася или рекомендуете поспрашивать радеончика?

но как по мне — проблемма именно в плате

Olgerd
 
Сообщений: 4

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение Olgerd » 27 авг 2011, 17:56

Kly писал(а):Мне когда-то тех поддержка говорила, что для карт Nvidia нужно выставлять не полное аппаратное ускорение, а на 1 позицию меньше. А иначе видео подтормаживает.

Чудо свершилось! система запустилась :)
никогда бы сам не нашел
спасибо

на данную секунду считаю вопрос закрытым. если что изменится — буду писать

Olgerd
 
Сообщений: 4

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение sysexe » 09 мар 2012, 00:24

Этаже ошибка (0x88760233) возникает при использовании radmin :(
хотел обойтись без использования клиента, но видать не судьба…

sysexe
 
Сообщений: 1


Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение MasloDV » 12 дек 2012, 18:57

Добрый день. Та же ошибка CreateImage — CreateSurface 0x88760233.
Из прочитанного ранее понял, что проблема скорее всего в DirectDraw.
В настройках dxdiag -> Display DirectDraw Acceleration: Not Available

Стоит Windows Server 2008 R2 x64. Только установленный.
Материнская плата Asus p8b-e/4l . Видео on board
Глубина цвета 32 бита. ускорение пробовал разное ставить.

Подскажите, как исправить проблему?

MasloDV
Новичок
 
Сообщений: 6

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение biggrandfather » 12 дек 2012, 19:56

MasloDV , проблема у тебя только в наличии этой записи в журнале VideoNet ?
Всё остальное устраивает ?

ЗЫ: Система видео вывода VideoNet работает при наличии видеопамяти на борту не менее 64 мб. Но в ряде случаев это просто не нужно, например если сервер только оцифровывает, а просмотром видео занимаются клиенты.

Аватар пользователя
biggrandfather
Знаток
 
Сообщений: 285
Откуда: Soviet Union

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение MasloDV » 13 дек 2012, 10:48

Если бы. Изображение не показывается. Пробовал 3 разных камеры. менял кодеки. Запустил на тех же настройках на кругом компе — все нормально. Только вот нужно обязательно на проблемном пустить

MasloDV
Новичок
 
Сообщений: 6

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение Vibat » 13 дек 2012, 12:31

На борту твоей серверной материнской платы 16 мб видеопамяти.
Asus p8b-e/4l
Потому изображения и не будет. Цена вопроса 1000-1500 руб. за видеокарту в слот PCI-x16 .

Vibat
Профессионал
 
Сообщений: 3454

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение MasloDV » 13 дек 2012, 12:36

Поставил внешнюю видео карту GF 9500 GT — заработало. Но это крайний случай. Можно ли его избежать?

MasloDV
Новичок
 
Сообщений: 6


Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение grizzlyvdv » 10 июл 2014, 16:08

Добрый день, на рабочей система сдохла видео карта заменили на nvidea 210 пропало изображение с камер в режиме наблюдения,в настройках каждой камеры изображение присутствует
скачал свежий драйвер для видео карты не помогло, DirectDraw — недоступно
аппаратное ускорение поставил на одну шкалу ниже тоже не помогло

grizzlyvdv
 
Сообщений: 1

Re: Ошибка. CreateImage — CreateSurface 0x88760233.

Сообщение Stranger » 11 июл 2014, 09:33

Здравствуйте.

Для отображения в режиме наблюдения VideoNet необходимо включенное в ОС ускорение DirectDraw. Одна из причин его недоступности — использование ПО для удаленного администрирования (MS RDP, RAdmin, и т.п.). Возможно, Вы подключаетесь к компьютеру посредством данного ПО?

Владимир Шерстобоев
Техническая поддержка компьютерных систем
тел.: (812) 448-10-10
e-mail:

support@videonet.ru

Stranger
Специалист
 
Сообщений: 1013

Вернуться в Вопросы функционирования системы

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Hi,

could you help me with this?
It»s from the book DirectX7 in 24 hours(a bit modified).

The error message is as follows: «CreateSurface FAILED»

COMPLETE CODE:

#include
#include

#define INITGUID
#include

LPDIRECTDRAW7 lpDD=NULL;
LPDIRECTDRAWSURFACE7 lpDDSPrimary=NULL;
LPDIRECTDRAWSURFACE7 lpDDSBack=NULL;

int cur_image=0;

#define IMAGE_COUNT 7

char file_names[IMAGE_COUNT][256]={ «slide001.bmp»,
«slide002.bmp»,
«slide003.bmp»,
«slide004.bmp»,
«slide005.bmp»,
«slide006.bmp»,
«slide007.bmp»
};

LPDIRECTDRAWSURFACE7 lpSlides[IMAGE_COUNT];

static char szClass[]=»XmplHr3Class»;
static char szCaption[]=»Example — Hour 3″;

const char *ErrStr=NULL;

const char Err_Reg_Class[]=»Error Registering Window Class»;
const char Err_Create_Win[]=»Error Creating Window»;
const char Err_DirectDrawCreate[]=»DirectDrawCreate FAILED»;
const char Err_Query[]=»Query Interface FAILED»;
const char Err_Coop[]=»SetCooperativeLevel FAILED»;
const char Err_CreateClip[]=»CreateClip FAILED»;
const char Err_CreateSurf[]=»CreateSurface FAILED»;
const char Err_LoadBMP[]=»Error Loading Image»;
const char Err_SetD[]=»SetDisplay FAILED»;
#define SafeRelease(x) if (x) {x->Release(); x=NULL;}

void Cleanup(void)
{
for (int i=0;i);
SafeRelease(lpDDSBack);
SafeRelease(lpDDSPrimary);
SafeRelease(lpDD);

if(ErrStr)
MessageBox(NULL, ErrStr, szCaption, MB_OK);
}

LPDIRECTDRAWSURFACE7 bitmap_surface(LPCTSTR file_name)
{
HDC hdc;
HBITMAP bit;
LPDIRECTDRAWSURFACE7 surf;

bit=(HBITMAP) LoadImage(NULL,file_name,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
if (!bit)
return NULL;

BITMAP bitmap;
GetObject(bit, sizeof(BITMAP), &bitmap);
int surf_width=bitmap.bmWidth;
int surf_height=bitmap.bmHeight;

HRESULT ddrval;
DDSURFACEDESC2 ddsd;
ZeroMemory(&ddsd,sizeof(ddsd));
ddsd.dwSize=sizeof(DDSURFACEDESC2);
ddsd.dwFlags=DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT;
ddsd.ddsCaps.dwCaps=DDSCAPS_OFFSCREENPLAIN;
ddsd.dwWidth=surf_width;
ddsd.dwHeight=surf_height;

ddrval=lpDD->CreateSurface(&ddsd,&surf,NULL);

if(ddrval!=DD_OK) {
DeleteObject(bit);
return NULL;

} else {

surf->GetDC(&hdc);

HDC bit_dc=CreateCompatibleDC(hdc);

SelectObject(bit_dc,bit);
BitBlt(hdc,0,0,surf_width,surf_height,bit_dc,0,0,SRCCOPY);

surf->ReleaseDC(hdc);
DeleteDC(bit_dc);
}

DeleteObject(bit);

return surf;
}

void draw_slide()
{
if (!lpSlides[cur_image]) {
lpSlides[cur_image]=bitmap_surface(file_names[cur_image]);
if (!lpSlides[cur_image]) return;
}

lpDDSBack->BltFast(0,0,lpSlides[cur_image],NULL,DDBLTFAST_WAIT);

HDC hdc;
if (DD_OK==lpDDSBack->GetDC(&hdc)) {
SetTextColor(hdc,0x00ff7f00);
SetBkColor(hdc,0x000000);
TextOut(hdc,20,400,»<- Previous Slide»,16);
TextOut(hdc,540,400,»Next Slide ->»,13);
SetTextColor(hdc,0x0000ffff);
TextOut(hdc,235,440,»Press Arrow Keys to Change Slides»,33);
lpDDSBack->ReleaseDC(hdc);
}

lpDDSPrimary->Flip(0,DDFLIP_WAIT);

int next_slide=(cur_image>=IMAGE_COUNT-1)?0:cur_image+1;
if (!lpSlides[next_slide])
lpSlides[next_slide]=bitmap_surface(file_names[next_slide]);

int prev_slide=(cur_image<1)? IMAGE_COUNT-1:cur_image-1;
if (!lpSlides[prev_slide])
lpSlides[prev_slide]=bitmap_surface(file_names[next_slide]);

return;

}

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{

case WM_KEYDOWN:
switch (wParam)
{
case VK_LEFT:
cur_image—;
if (cur_image<0)
cur_image=IMAGE_COUNT-1;
draw_slide();
break;

case VK_RIGHT:
cur_image++;
if(cur_image>IMAGE_COUNT-1)
cur_image=0;
draw_slide();
break;

case VK_ESCAPE:

DestroyWindow(hWnd);
break;

default:
break;
}

case WM_DESTROY:
Cleanup();
PostQuitMessage(0);
break;

default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0L;
}

static BOOL Init(HINSTANCE hInstance, int nCmdShow)
{
WNDCLASS wc;
HRESULT hRet;
DDSURFACEDESC2 ddsd;
DDSCAPS2 ddscaps;

wc.style=CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc=(WNDPROC) WindowProc;
wc.cbClsExtra=0;
wc.cbWndExtra=sizeof(DWORD);
wc.hInstance=hInstance;
wc.hIcon=NULL;
wc.hCursor=LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground=(HBRUSH) GetStockObject(BLACK_BRUSH);
wc.lpszMenuName=NULL;
wc.lpszClassName=szClass;
if (!RegisterClass(&wc)) {
ErrStr=Err_Reg_Class;
return FALSE;
}

int ScreenWidth=GetSystemMetrics(SM_CXSCREEN);
int ScreenHeight=GetSystemMetrics(SM_CYSCREEN);

HWND hWnd;

hWnd=CreateWindow(szClass, szCaption, WS_VISIBLE|WS_POPUP,
0,0,ScreenWidth, ScreenHeight, NULL, NULL, hInstance, NULL);
if (!hWnd) {
ErrStr=Err_Create_Win;
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
ZeroMemory(lpSlides,sizeof(lpSlides));

hRet=DirectDrawCreateEx(NULL,(LPVOID*)&lpDD,IID_IDirectDraw7,NULL);
if (hRet !=DD_OK) {
ErrStr=Err_DirectDrawCreate;
return FALSE;
}

hRet=lpDD->SetCooperativeLevel(hWnd, DDSCL_FULLSCREEN|DDSCL_EXCLUSIVE|DDSCL_ALLOWREBOOT);
if (hRet!=DD_OK) {
ErrStr=Err_Coop;
return FALSE;
}

hRet=lpDD->SetDisplayMode(800,600,16,0,0);
if (hRet!=DD_OK) {
ErrStr=Err_SetD;
return FALSE;
}

ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags=DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount=1;
hRet=lpDD->CreateSurface(&ddsd, &lpDDSPrimary, NULL);
if (hRet!=DD_OK) {
ErrStr=Err_CreateSurf;
return FALSE;
}

ddscaps.dwCaps=DDSCAPS_BACKBUFFER;
hRet=lpDDSPrimary->GetAttachedSurface(&ddscaps,&lpDDSBack);
if (hRet!=DD_OK) {
ErrStr=Err_CreateSurf;
return FALSE;
}

lpSlides[0]=bitmap_surface(file_names[0]);
if (!lpSlides[0])
return FALSE;
draw_slide();
return TRUE;
}

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;

if (!Init(hInstance, nCmdShow)) {
Cleanup();
return FALSE;
}

while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg;;
DispatchMessage(&msg;;
}

return (msg.wParam);
}

I cant tell you what the problem is. It would be alot easier if you knew what error CreateSurface() returned. Here is how you could do that:

    const char*GetErrorString(HRESULT p_hRes){	switch(p_hRes)	{	case DDERR_ALREADYINITIALIZED:           return "DDERR_ALREADYINITIALIZED";	case DDERR_CANNOTATTACHSURFACE:          return "DDERR_CANNOTATTACHSURFACE";	case DDERR_CANNOTDETACHSURFACE:          return "DDERR_CANNOTDETACHSURFACE";	case DDERR_CURRENTLYNOTAVAIL:            return "DDERR_CURRENTLYNOTAVAIL";	case DDERR_EXCEPTION:                    return "DDERR_EXCEPTION";	case DDERR_GENERIC:                      return "DDERR_GENERIC";	case DDERR_HEIGHTALIGN:                  return "DDERR_HEIGHTALIGN";	case DDERR_INCOMPATIBLEPRIMARY:          return "DDERR_INCOMPATIBLEPRIMARY";	case DDERR_INVALIDCAPS:                  return "DDERR_INVALIDCAPS";	case DDERR_INVALIDCLIPLIST:              return "DDERR_INVALIDCLIPLIST";	case DDERR_INVALIDMODE:                  return "DDERR_INVALIDMODE";	case DDERR_INVALIDOBJECT:                return "DDERR_INVALIDOBJECT";	case DDERR_INVALIDPARAMS:                return "DDERR_INVALIDPARAMS";	case DDERR_INVALIDPIXELFORMAT:           return "DDERR_INVALIDPIXELFORMAT";	case DDERR_INVALIDRECT:                  return "DDERR_INVALIDRECT";	case DDERR_LOCKEDSURFACES:               return "DDERR_LOCKEDSURFACES";	case DDERR_NO3D:                         return "DDERR_NO3D";	case DDERR_NOALPHAHW:                    return "DDERR_NOALPHAHW";	case DDERR_NOCLIPLIST:                   return "DDERR_NOCLIPLIST";	case DDERR_NOCOLORCONVHW:                return "DDERR_NOCOLORCONVHW";	case DDERR_NOCOOPERATIVELEVELSET:        return "DDERR_NOCOOPERATIVELEVELSET";	case DDERR_NOCOLORKEY:                   return "DDERR_NOCOLORKEY";	case DDERR_NOCOLORKEYHW:                 return "DDERR_NOCOLORKEYHW";	case DDERR_NODIRECTDRAWSUPPORT:          return "DDERR_NODIRECTDRAWSUPPORT";	case DDERR_NOEXCLUSIVEMODE:              return "DDERR_NOEXCLUSIVEMODE";	case DDERR_NOFLIPHW:                     return "DDERR_NOFLIPHW";	case DDERR_NOGDI:                        return "DDERR_NOGDI";	case DDERR_NOMIRRORHW:                   return "DDERR_NOMIRRORHW";	case DDERR_NOTFOUND:                     return "DDERR_NOTFOUND";	case DDERR_NOOVERLAYHW:                  return "DDERR_NOOVERLAYHW";	case DDERR_NORASTEROPHW:                 return "DDERR_NORASTEROPHW";	case DDERR_NOROTATIONHW:                 return "DDERR_NOROTATIONHW";	case DDERR_NOSTRETCHHW:                  return "DDERR_NOSTRETCHHW";	case DDERR_NOT4BITCOLOR:                 return "DDERR_NOT4BITCOLOR";	case DDERR_NOT4BITCOLORINDEX:            return "DDERR_NOT4BITCOLORINDEX";	case DDERR_NOT8BITCOLOR:                 return "DDERR_NOT8BITCOLOR";	case DDERR_NOTEXTUREHW:                  return "DDERR_NOTEXTUREHW";	case DDERR_NOVSYNCHW:                    return "DDERR_NOVSYNCHW";	case DDERR_NOZBUFFERHW:                  return "DDERR_NOZBUFFERHW";	case DDERR_NOZOVERLAYHW:                 return "DDERR_NOZOVERLAYHW";	case DDERR_OUTOFCAPS:                    return "DDERR_OUTOFCAPS";	case DDERR_OUTOFMEMORY:                  return "DDERR_OUTOFMEMORY";	case DDERR_OUTOFVIDEOMEMORY:             return "DDERR_OUTOFVIDEOMEMORY";	case DDERR_OVERLAYCANTCLIP:              return "DDERR_OVERLAYCANTCLIP";	case DDERR_OVERLAYCOLORKEYONLYONEACTIVE: return "DDERR_OVERLAYCOLORKEYONLYONEACTIVE";	case DDERR_PALETTEBUSY:                  return "DDERR_PALETTEBUSY";	case DDERR_COLORKEYNOTSET:               return "DDERR_COLORKEYNOTSET";	case DDERR_SURFACEALREADYATTACHED:       return "DDERR_SURFACEALREADYATTACHED";	case DDERR_SURFACEALREADYDEPENDENT:      return "DDERR_SURFACEALREADYDEPENDENT";	case DDERR_SURFACEBUSY:                  return "DDERR_SURFACEBUSY";	case DDERR_CANTLOCKSURFACE:              return "DDERR_CANTLOCKSURFACE";	case DDERR_SURFACEISOBSCURED:            return "DDERR_SURFACEISOBSCURED";	case DDERR_SURFACELOST:                  return "DDERR_SURFACELOST";	case DDERR_SURFACENOTATTACHED:           return "DDERR_SURFACENOTATTACHED";	case DDERR_TOOBIGHEIGHT:                 return "DDERR_TOOBIGHEIGHT";	case DDERR_TOOBIGSIZE:                   return "DDERR_TOOBIGSIZE";	case DDERR_TOOBIGWIDTH:                  return "DDERR_TOOBIGWIDTH";	case DDERR_UNSUPPORTED:                  return "DDERR_UNSUPPORTED";	case DDERR_UNSUPPORTEDFORMAT:            return "DDERR_UNSUPPORTEDFORMAT";	case DDERR_UNSUPPORTEDMASK:              return "DDERR_UNSUPPORTEDMASK";	case DDERR_VERTICALBLANKINPROGRESS:      return "DDERR_VERTICALBLANKINPROGRESS";	case DDERR_WASSTILLDRAWING:              return "DDERR_WASSTILLDRAWING";	case DDERR_XALIGN:                       return "DDERR_XALIGN";	case DDERR_INVALIDDIRECTDRAWGUID:        return "DDERR_INVALIDDIRECTDRAWGUID";	case DDERR_DIRECTDRAWALREADYCREATED:     return "DDERR_DIRECTDRAWALREADYCREATED";	case DDERR_NODIRECTDRAWHW:               return "DDERR_NODIRECTDRAWHW";	case DDERR_PRIMARYSURFACEALREADYEXISTS:  return "DDERR_PRIMARYSURFACEALREADYEXISTS";	case DDERR_NOEMULATION:                  return "DDERR_NOEMULATION";	case DDERR_REGIONTOOSMALL:               return "DDERR_REGIONTOOSMALL";	case DDERR_CLIPPERISUSINGHWND:           return "DDERR_CLIPPERISUSINGHWND";	case DDERR_NOCLIPPERATTACHED:            return "DDERR_NOCLIPPERATTACHED";	case DDERR_NOHWND:                       return "DDERR_NOHWND";	case DDERR_HWNDSUBCLASSED:               return "DDERR_HWNDSUBCLASSED";	case DDERR_HWNDALREADYSET:               return "DDERR_HWNDALREADYSET";	case DDERR_NOPALETTEATTACHED:            return "DDERR_NOPALETTEATTACHED";	case DDERR_NOPALETTEHW:                  return "DDERR_NOPALETTEHW";	case DDERR_BLTFASTCANTCLIP:              return "DDERR_BLTFASTCANTCLIP";	case DDERR_NOBLTHW:                      return "DDERR_NOBLTHW";	case DDERR_NODDROPSHW:                   return "DDERR_NODDROPSHW";	case DDERR_OVERLAYNOTVISIBLE:            return "DDERR_OVERLAYNOTVISIBLE";	case DDERR_NOOVERLAYDEST:                return "DDERR_NOOVERLAYDEST";	case DDERR_INVALIDPOSITION:              return "DDERR_INVALIDPOSITION";	case DDERR_NOTAOVERLAYSURFACE:           return "DDERR_NOTAOVERLAYSURFACE";	case DDERR_EXCLUSIVEMODEALREADYSET:      return "DDERR_EXCLUSIVEMODEALREADYSET";	case DDERR_NOTFLIPPABLE:                 return "DDERR_NOTFLIPPABLE";	case DDERR_CANTDUPLICATE:                return "DDERR_CANTDUPLICATE";	case DDERR_NOTLOCKED:                    return "DDERR_NOTLOCKED";	case DDERR_CANTCREATEDC:                 return "DDERR_CANTCREATEDC";	case DDERR_NODC:                         return "DDERR_NODC";	case DDERR_WRONGMODE:                    return "DDERR_WRONGMODE";	case DDERR_IMPLICITLYCREATED:            return "DDERR_IMPLICITLYCREATED";	case DDERR_NOTPALETTIZED:                return "DDERR_NOTPALETTIZED";	case DDERR_UNSUPPORTEDMODE:              return "DDERR_UNSUPPORTEDMODE";	case DDERR_NOMIPMAPHW:                   return "DDERR_NOMIPMAPHW";	case DDERR_INVALIDSURFACETYPE:           return "DDERR_INVALIDSURFACETYPE";	case DDERR_DCALREADYCREATED:             return "DDERR_DCALREADYCREATED";	case DDERR_CANTPAGELOCK:                 return "DDERR_CANTPAGELOCK";	case DDERR_CANTPAGEUNLOCK:               return "DDERR_CANTPAGEUNLOCK";	case DDERR_NOTPAGELOCKED:                return "DDERR_NOTPAGELOCKED";	case DDERR_NOTINITIALIZED:               return "DDERR_NOTINITIALIZED";	case DD_OK:								 return "DD_OK";	default: return "Unknown error";	}}hRes = lpDD->CreateSurface(&ddsd, &lpDDSPrimary, NULL);if(FAILED(hRes)){    DDrawErrDesc = GetErrorString(hRes);}    

Just copy and paste the function GetErrorString into your source and call it with the HRESULT returned from CreateSurface() as parameter. The return value is a string describing the error. You could post the return value and maybe i will be able to help you.

Thank you very much for your error message function!
Sorry, my answer is a bit late, but I was in the vacation.

This time with your code pasted in I received the error DDERR_NOTFOUND. But I don»t know what»s missing. It»s all there!

Thanks in advance

If I remember correctly, there are sevral errors in the first 4 chapters of learn dx in 24. goto the authors site to d/l the fixed code. (i forgot the url it should be somewhere in the book)

I found that with the DDraw7 surface in the loadbitmap function if i made the temp surface a global variable outside that function it worked otherwise it wouldnt…i still dont know why though.

The surface i am talking about is surf in the bitmap_surface function…i used that code to base what i currently have now

oddly a DirectDraw4 surface will work with surf declared in there and the code on the cd with the book uses DDraw4 surfaces on all the 2d stuff

Тема: Проблема с Gens+ 0.0.9.61  (Прочитано 5645 раз)

0 Пользователей и 1 Гость просматривают эту тему.

С недавнего времени Gens+ перестал запускаться, выдавая ошибку Error: Direct 3D — Create Surface. Я удалил файл с настройками, после чего эмуль запустился, но при попытке поставить режим Direct 3D выдаёт ту же ошибку.

DirectX я переустанавливал, драйвера для видеокарты тоже, да и сам эмулятор. Не помогло.

Что интересно, такое начало происходить после установки Total Recorder‘а со своим ужасно глючным драйвером. Драйвер я давно снёс, но проблема не исчезла.

Как это можно исправить, кроме конечно переустановки Винды?

« Последнее редактирование: 27 Июль 2008, 21:30:27 от Vegas »


у меня такой же глюк когда выбираю рендер — Direct 3D, но Тотал Коммандер не стоит.


Похоже это из-за карточек Nvidia
Когда у меня был Ati Radeon режим D3D работал,но потом ставил карточки Nvidia (3 штуки разного поколения) и ни на одной D3D не работал.


у меня такой же глюк когда выбираю рендер — Direct 3D, но Тотал Коммандер не стоит.

Читаем внематочно:

…Что интересно, такое начало происходить после установки Total Recorder‘а со своим ужасно глючным драйвером. Драйвер я давно снёс, но проблема не исчезла….


Ну, Тотал Рекордера тоже не стоит.


Похоже это из-за карточек Nvidia…Когда у меня был Ati Radeon режим D3D работал,но потом ставил карточки Nvidia (3 штуки разного поколения) и ни на одной D3D не работал.

Самое смешное, что такой глюк начал появляться, когда у меня ещё был Radeon, но теперь у меня стоит Nvidia. Жаль, а то мне D3D-режим в основном из-за Фрапса был нужен…


Так что решение проблемы так и не нашли?
У меня такая же проблема появилась с новым компом. Видюха там кстати радеоновская. Все обновления директикса стоят. Судя по дате появления проблемы я так понял 7 винда тут ни при чем.
Что же тогда?

Еще почемуто при переходе в полноэкранный режим, рендер автоматом падает на дубл хотя в настройках стоит 3hq, как это можно исправить?
И изображение не растягивается на полный экран, причем чем больше выставлено полноэкранное разрешение тем меньше картинка. Это как нить лечится?

Добавлено позже:
Или посоветуйте эмуль в котором есть рендеринг выше 2х и работает полноэкранное растягивание.


Те же проблемы, поэтому просто разворачиваю окно Генса вместо того, чтоб включать полный экран.

Или посоветуйте эмуль в котором есть рендеринг выше 2х и работает полноэкранное растягивание.

Kega Fusion. Плагины с фильтрами, правда, надо отдельно скачать, но это ерунда.


А ссылку на плагины можно, а то что то как то без них графа на эмуле выглядит убого.


Например, здесь, в самом низу.


Благодарствую, уже сам нашел, там же =) Просто первый раз посмотрел невнимательно.


  1. 01-05-2006


    #1

    SkyRaign is offline


    Registered User


    Problem with CreateSurface function (DirectDraw)

    Code:

    LPDIRECTDRAW7 lpdd;
    DirectDrawCreateEx(NULL,(void**)&lpdd,IID_IDirectDraw7,NULL); 
    lpdd->SetCooperativeLevel(hHandle,DDSCL_NORMAL);
    if((lpdd->SetDisplayMode(1024,768,16,0,0))!=DD_OK)
    	{
    	return(0);
    	}
    //directDraw surface description struct
    DDSURFACEDESC2 ddsd;
    //directDraw interface pointer
    LPDIRECTDRAWSURFACE7 lpddsprimary;
    ddsd.dwSize=sizeof(ddsd);
    ddsd.dwFlags=DDSD_CAPS;
    ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;
    if(lpdd->CreateSurface(&ddsd,&lpddsprimary,NULL)!=DDERR_INVALIDCAPS)
    	{
    	ShowWindow(hHandle,SW_MINIMIZE);
    	}

    I’ve changed out the error flags until I found the one that the CreateSurface function returned. I cannot figure out why this is happening and I have no idea how to fix it. Any help?


  2. 01-06-2006


    #2

    VirtualAce is offline


    Registered User

    VirtualAce's Avatar


    DirectDraw is dead. Face it. Use D3D.


  3. 01-06-2006


    #3

    MrWizard is offline


    Registered User


    Since you usually want to have a back buffer in addition to the primary surface, you may consider something like this:

    Code:

    memset(&ddsd, 0, sizeof(ddsd));
    
    ddsd.dwSize = sizeof(ddsd);   
    ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
    ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
    ddsd.dwBackBufferCount = 1;

    «…the results are undefined, and we all know what «undefined» means: it means it works during development, it works during testing, and it blows up in your most important customers’ faces.» —Scott Meyers


  4. 01-06-2006


    #4

    VirtualAce is offline


    Registered User

    VirtualAce's Avatar


    Why are you using deprecated DirectDraw interfaces? In the new D3D SDK they specifically state that while they attempt to maintain compatibility with previous versions, this can no longer be guaranteed as it relates to DirectDraw interfaces. D3D will be backwards compatible but since DirectDraw is now inside of D3D, they can no longer guarantee it’s backwards compatibility and they are no longer supporting DirectDraw or addressing DirectDraw issues — neither are the video card manufacturers.


  5. 01-06-2006


    #5

    SkyRaign is offline


    Registered User


    DirectDraw is still there and still functional. Face it. -I- for one want to learn the roots.


  6. 01-07-2006


    #6

    VirtualAce is offline


    Registered User

    VirtualAce's Avatar


    …yet not supported. Future drivers may not even implement the old interfaces correctly so you are treading on thin ice using it.

    Just use Direct3D for 2D. It’s simple. And you can get to the surface using IDirect3DTexture9 to get a pointer to the IDirect3DSurface9 interface.

    But the days of locking and unlocking surfaces for the most part are gone. Everything can be done via shaders, SetRenderTarget() and render to texture operations.


  7. 01-08-2006


    #7

    SkyRaign is offline


    Registered User


    Well Bubba, I’ll take your word for it. Only trouble is, now I need to find some resources that teach the Direct3D for 2D interfaces, since this book I have is completely horrible.

    Of course any help from the folks on here would be appreciated. With DirectDraw I was able to create the object and pointer, but the CreateSurface function errored when I called it. Now I am stuck between Scylla and Charybdis.


  8. 01-19-2006


    #8

    loopshot is offline


    Call me AirBronto


    You wont really be able to do 2d stuff with Direct3D it will just look like its in 2d. They decided to kill DirectDraw becouse rotating a bitmap is crazy slow, so now you just create a graphical object and blit the bitmap on.


  9. 01-19-2006


    #9

    dpro is offline


    I am me, who else?


    There are simple ways of getting 2d into 3d. Its honestly not as hard as you might think. Good tutorials are onGamedev.

    And Bubba is right, DD is encapsulated inside of D3D, in essence you could think of 2d as being 3d with a constantly 0 z-vector… but thats oversimplyfying I suppose. In any event, check it out, you’ll tons of good stuff, or even check out stuff on this forum.



Форум программистов Vingrad

Новости ·
Фриланс ·
FAQ

Правила ·
Помощь ·
Рейтинг ·
Избранное ·
Поиск ·
Участники

Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> CreateSurface, cannot convert parameter 1 

V

   

Опции темы

NeoRus
Дата 26.11.2008, 18:26 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 82
Регистрация: 13.5.2007
Где: Россия

Репутация: нет
Всего: нет

Изучаю DirectX по книге Ламота, но не выходит с компилить следующую строчку

Код

lpddPrim->Lock(NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);

Перед этой строчкой:

Код

LPDIRECTDRAWSURFACE7 lpddPrim = NULL;
    DDSURFACEDESC2 ddsd;
    memset(&ddsd, 0, sizeof(ddsd));
    ddsd.dwSize = sizeof(ddsd);
    ddsd.dwFlags = DDSD_CAPS;
    ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
    lpdd->CreateSurface(&ddsd, &lpddPrim, NULL);
    lpddPrim->SetPalette(lpddp);
    lpddPrim->Lock(NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);

Ошибка

Код

1>.main.cpp(117) : error C2664: 'IDirectDraw::CreateSurface' : cannot convert parameter 1 from 'DDSURFACEDESC2 *' to 'LPDDSURFACEDESC'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

PM MAIL   Вверх
NeoRus
Дата 27.11.2008, 15:45 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 82
Регистрация: 13.5.2007
Где: Россия

Репутация: нет
Всего: нет

Всё сам исправил, просто книгу качал с инета, диска нет. А в сомой книге опечатки и не дописки всякие…

CLOSED

PM MAIL   Вверх
Rickert
Дата 28.11.2008, 06:33 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Ситхи не пройдут!
****

Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52

Если вопрос решён, то тему надо помечать как решённую.

———————

Ни что не внушает сна крепче, чем день приисполненный трудов!

PM MAIL WWW Skype GTalk   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Вы можете найти полезным что…
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »

Понравилась статья? Поделить с друзьями:
  • Error with command gdb version cannot run program gdb launching failed
  • Error with camera could not start video source
  • Error with action json data cannot read properties of undefined reading url
  • Error wis 30270
  • Error wiping device failed to probe the device dev sdc udisks error quark 0