fasm Получаю ddraw поверхность для работы в 2d при компиляции ошибка в ddraw.inc : Illegal instruction : guidDeviceIdentifier GUID (строка 495) исходник прилагается Почему не хочу в D3d? Субъективно растр на 3d плоскости муарится немного, то ли фильтрация в драйверах, то ли плавающая точка.. мне так кажется
В общем каша из инклудов если скопировать все MadMatt-а вместо стандартных то invalid instruction - ddraw: lprDest RECT один раз перетусовав их получилось запустить пример, но другое что-то вылезло)
kugc хотел глянуть в чём дело, а архив что то не качаеться. Пришли мне на мыло dead_body SOBAKA wasm.ru , или перезалей сюда.
kugc а какой это конктертно пример от МэдМатэ? в каком архиве лежит, и какая глава, твоё письмо получил - действительно не компилиться, хочу скомпилировать оригинал.
Пример не от матмэтта, я ориентировался на след документhttp://hack-expo.void.ru/groups/blt/text/ddraw.txt просто и понятно, других почти не нет, а поскольку файлов ddraw.inc для фасма в сети только 2 нашел, один из них совсем не работает, а другой в комплекте матмэтта. нашел собирающийся пример если использовать полностью его инкулды \Masm to Fasm Examples\Ron'S Cornucopia Renewed\Mathematical Examples\ буду их разрабатывать. но там библиотека TurboAsmDD.dll обязательна, функции ddraw через нее(?) без comcall идут, что не так строго, хотелось в рамках относительного стандарта остаться текущие продвижения: include '%fasminc%\win32ax.inc' include '%fasminc%\API\DirectX\ddraw.inc'; от ММ \APIA\DirectX\ddraw.inc' include '%fasminc%\EQUATES\DIRECTX\ddraw.inc';от MM include '%fasminc%\IAPIA\Direct X\ddraw.inc' ;от MM .. invoke DirectDrawCreate,NULL,DDraw,NULL comcall DDraw,SetCooperativeLevel,[myhwnd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN comcall DDraw,SetDisplayMode,X,Y,bpp comcall DDraw,CreateSurface,ddsd,DDSPrimary,NULL ... не понятно если ddraw.inc это просто список структур,функций и com смещений, почему добавления его одного не достаточно. беру стандартные fasm includes + от матмэта: \EQUATES\DIRECTX\ddraw.inc - com смещения, структуры(добавляю в него структуру GUID, s_ок=0,s_false=1,макрос extrndef т.к. их нет в более высоких стандартных инклудах) \APIA\DirectX\ddraw.inc - список функций \IAPIA\Direct X\ddraw.inc - повидимому их реальные имена в ddraw.dll ругается на illegal instruction в \IAPIA\Direct X\ddraw.inc строка: EXTRNDEF '__imp__DDGetAttachedSurfaceLcl@12',DDGetAttachedSurfaceLcl хотя такой макрос определен в файле \EQUATES\DIRECTX\ddraw.inc, который include перед ним. примеров по написанию inc для некоторого dll файла не нашел
МэдМэтт обитает на fasm форуме и на своём сайте, где присутствуют все инклуды и исходники (примеры к книгам) на фасме. Задать вопрос ему напрямую либо на форуме, где он есть предпочтительнее, предварительно скачав последние версии инклудов кнешна. Примеры с сайте все рабочие /теперь/, смотрел, об ошибках ему сообщал - и он исправил все, вроде).