Очень нужны DirectX - .inc файлы для MASM'a (не очень протухшие)

Тема в разделе "WASM.DirectX", создана пользователем Anrkaid, 18 авг 2005.

  1. Anrkaid

    Anrkaid New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    13
    Адрес:
    Russia
    Задумал написать простенькую гейму (это будет моя первая, на которую смотреть не противно будет, я надеюсь), раньше писал на Це++, потом перешел на асм, а в includ'e только DirectDraw 2 версии(я пробовал сам переделать, но что-то трещит внутри и нихрена не работает), нужны определения интерфейсов DirectInput, DirectSound, и DirectDraw(желательно 7)
     
  2. Anrkaid

    Anrkaid New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    13
    Адрес:
    Russia
    Ну пожалейте меня, в моих даже определения DDBLTFX нету, а мой перевоз с Це++'ных хидеров не пашет
     
  3. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
  4. Anrkaid

    Anrkaid New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    13
    Адрес:
    Russia
    Спасибо.
     
  5. Anrkaid

    Anrkaid New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    13
    Адрес:
    Russia
    А почему при такой бадяге MASM выдает кучу ошибок вида SyntaxError:имя метода?



    .586

    .model flat,stdcall

    option casemap :none

    .nolist

    .nocref

    include \masm32\include\windows.inc

    include \masm32\include\kernel32.inc

    include \masm32\include\user32.inc

    include \masm32\include\gdi32.inc

    .list

    .cref

    includelib \masm32\lib\kernel32.lib

    includelib \masm32\lib\user32.lib

    includelib \masm32\lib\gdi32.lib

    includelib \masm32\lib\ddraw.lib

    includelib \masm32\lib\dxguid.lib

    include \masm32\include\ddraw.inc

    include \masm32\include\ddraw7.inc
     
  6. Anrkaid

    Anrkaid New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    13
    Адрес:
    Russia
    добавил UNKNWN.inc :



    ;-------------------------------------------------------------------



    ;*** vf macro: use "invoke vf(pInterface,Interface,Function)<,arguments>



    vf macro this:req,ifvt,func:req

    local reg

    reg equ <edx>

    ifidni <this>,<edx>

    reg equ <ecx>

    endif

    mov reg,this

    mov reg,[reg].ifvt.pVtbl

    exitm <[reg].&ifvt&Vtbl.&func&,this>

    endm



    ;-------------------------------------------------------------------



    ;*** Interface definition macros: start_interface, end_interface, mvbr



    start_interface macro name

    ?Interface equ <name>

    &name&Vtbl struct

    endm



    end_interface macro

    local structname,vtblptr,vtbldef

    structname catstr ?Interface,<Vtbl ends>

    vtblptr catstr <p>,?Interface,<Vtbl typedef ptr >,?Interface,<Vtbl>

    vtbldef catstr <pVtbl p>,?Interface,<Vtbl ?>



    structname

    vtblptr



    ?Interface struct

    vtbldef

    ?Interface ends



    ?Interface equ <>

    endm



    STDMETHOD macro name:req,arguments:VARARG

    local prototype,pointer,function

    ifnb <arguments>

    prototype catstr ?Interface,<_>,<name>,< typedef proto :ptr,arguments>

    else

    prototype catstr ?Interface,<_>,<name>,< typedef proto :ptr>

    endif

    pointer catstr <p>,?Interface,<_>,<name>,< typedef ptr >,?Interface,<_>,<name>

    function catstr <name>,< p>,?Interface,<_>,<name>,< ?>



    prototype

    pointer

    function

    endm



    ;-------------------------------------------------------------------





    ;*** definition IUnknown



    externdef c IID_IUnknown:ptr IID



    start_interface IUnknown

    STDMETHOD QueryInterface ,:ptr IID,:ptr ptr

    STDMETHOD AddRef

    STDMETHOD Release

    end_interface



    pIUnknown typedef ptr IUnknown



    ;-------------------------------------------------------------------



    ;*** definition IClassFactory



    externdef c IID_IClassFactory:ptr IID



    start_interface IClassFactory

    STDMETHOD QueryInterface ,:ptr IID,:ptr ptr

    STDMETHOD AddRef

    STDMETHOD Release

    STDMETHOD CreateInstance ,:ptr,:ptr IID,:ptr ptr

    STDMETHOD LockServer ,:dword

    end_interface



    ;*** end of file

    ошибка поменялась на: conflict parameter definition
     
  7. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    хм.. видимо дело в макросах вызывающих COM методы. вот пример использования этих инклудов, может поможет чем (хотя это больше похоже на пример как делать не нужно =))
     
  8. Anrkaid

    Anrkaid New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    13
    Адрес:
    Russia
    ну и херь :|

    хоть будет чем заняться... :dntknw: