ddraw.inc от MadMatt никак не запущу

Тема в разделе "WASM.DirectX", создана пользователем kugc, 6 июн 2008.

  1. kugc

    kugc New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2008
    Сообщения:
    7
    fasm
    Получаю ddraw поверхность для работы в 2d
    при компиляции ошибка в ddraw.inc :

    Illegal instruction : guidDeviceIdentifier GUID (строка 495)

    исходник прилагается


    Почему не хочу в D3d?
    Субъективно растр на 3d плоскости муарится немного, то ли фильтрация в драйверах, то ли плавающая точка.. мне так кажется
     
  2. kugc

    kugc New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2008
    Сообщения:
    7
    В общем каша из инклудов

    если скопировать все MadMatt-а вместо стандартных


    то invalid instruction - ddraw: lprDest RECT

    один раз перетусовав их получилось запустить пример, но другое что-то вылезло)
     
  3. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    kugc
    хотел глянуть в чём дело, а архив что то не качаеться. Пришли мне на мыло dead_body SOBAKA wasm.ru , или перезалей сюда.
     
  4. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    kugc
    а какой это конктертно пример от МэдМатэ? в каком архиве лежит, и какая глава, твоё письмо получил - действительно не компилиться, хочу скомпилировать оригинал.
     
  5. kugc

    kugc New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2008
    Сообщения:
    7
    Пример не от матмэтта, я ориентировался на след документ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 файла не нашел
     
  6. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    МэдМэтт обитает на fasm форуме и на своём сайте, где присутствуют все инклуды и исходники (примеры к книгам) на фасме. Задать вопрос ему напрямую либо на форуме, где он есть предпочтительнее, предварительно скачав последние версии инклудов кнешна. Примеры с сайте все рабочие /теперь/, смотрел, об ошибках ему сообщал - и он исправил все, вроде).