· Начало · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Header converters: to be or not to be?

<< . 1 . 2 . 3 . 4 .

Посл.отвђт Сообщенiе


Дата: Июн 19, 2004 16:57:24 · Поправил: S_T_A_S_

По поводу того, что FASM понимает сишные хидеры - не совсем так.
Некоторые сложные для парсинга вещи можно реализовать макросами, при этом файлы всё равно надо подправить.

Вот пример из *.H:
    DEFINE_GUID( CLSID_DirectDraw7, 0x3c305196,0x50db,0x11d3,0x9c,0xfe,0x00,0xc0,0x4f,0xd9,0x30,0xc5 );
Что тут не нравится FASM? Только скобочки. Значит их убираем, получаем:
    DEFINE_GUID CLSID_DirectDraw7, 0x3c305196,0x50db,0x11d3,0x9c,0xfe,0x   00,0xc0,0x4f,0xd9,0x30,0xc5

Далее, задаём пару макросов:
    macro	DEFINE_GUID	name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8
     {	name	fix	l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8 }
    
    struc	GUID	l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8
     {	dd	l
    	dw	w1,w2
    	db	b1,b2,b3,b4,b5,b6,b7,b8	 }
Всё. Теперь FASM понимает GUID'ы :). Вот так:
foo GUID CLSID_DirectDraw7

Так же я поступал с COM методами в DirectDraw, написав макросы DECLARE_INTERFACE и несколько подправив *.H
При работе макросы создают структуры, которые понимает FASM, и можно использовать coinvoke, даже аргументы подсчитывает.
Пока работа над этим приостановлена, т.к. основной проект пошёл по неверному пути и я его стёр, чтобы проще начинать сначала =)
В аттаче пример хидера и инклуда из него + несколько макросов.
Конечно, #ifdef/#if defined убирал ручками, но это не долго ;-)

_1269332879__ddraw7.rar


Дата: Июл 15, 2004 12:09:30
Правка

not to be.

В связи с некорректным отношением я покидаю этот форум.

Я не считаю нужным предъявлять какие-либо претензии по этому поводу, хотя было явное нарушение Правил форума:
п 2.2.

Так как п.3.10 не является обязательным, потому данное сообщение не является нарушением Правил.



Выражаю искреннюю благодарность всем отвечавшим на мои вопросы.

P.S. Данное заявление считается официальным и обсуждению не подлежит.

С уважением, IceStudent


Дата: Июл 15, 2004 12:41:55

IceStudent
Айс обиделся на Эдмонда и решил отомстить форуму.
Это бывает.


Дата: Июл 15, 2004 12:44:24

Edmond
imho твой комментарий неуместен.


Дата: Июл 15, 2004 14:36:29 · Поправил: Asterix

IceStudent
Я не знаю на какие слова ты обиделся, возможно я что-то пропустил, но не стОит общение на форуме воспринимать так уж серьёзно.


Дата: Июл 16, 2004 01:59:38

А я думал он на меня обиделся. Уйти по-английски имхо не метод.

<< . 1 . 2 . 3 . 4 .