FASM&OBJ
От: Grey2003  
Дата: 21.04.04 12:16
Оценка:
Привет всем

1. Подскажите пожалуйста, почему не получается создать *.obj
format MS COFF

include '%fasmmacro%\stdcall.inc'

public Disasm

;======================================================================================;
;                               Section Data                                           ;
;======================================================================================;
section '.data' data readable writeable
        table:  times   2048   db  0                            

;======================================================================================;
;                               Section Code                                           ;
;======================================================================================;
section '.code' code readable executable

;================== ULONG DisasmInstr(ULONG Address) ==================================;
proc    DisasmInstr, Address
        enter

        push    table 
        call    disasm_init
        add     esp, 4     

        push    [Address]  
        push    table      
        call    disasm_main
        add     esp, 8     

        return

endp

;======================= ULONG Disasm(ULONG Address, ULONG Length) ====================;
proc    Disasm, Address, Length

        push    ebx
        mov     ebx, [Address]

cycle:
        push    ebx
        call    DisasmInstr

        add     ebx, eax   

        mov     ecx, ebx   
        sub     ecx, [Address]
        mov     eax, ecx      
        cmp     ecx, [Length] 
        jae     exit          

        jmp     cycle         

exit:
        pop     ebx
        return

endp
;======================================================================================;
include 'lde32bin.inc'
;======================================================================================;


Error: unexpected characters на строку PROC DisasmInstr

2. Для подключения в VC++6.0, надо:
2.1. extern "C" ULONG WINAPI Disasm(ULONG, ULONG)
2.2. добавить *.obj в проект

Вопрос: а можно ли програмно подключить *.obj (директива линковщику ?)

Заранее спасибо
Re: FASM&OBJ
От: SergeMukhin Россия  
Дата: 21.04.04 12:24
Оценка:
Здравствуйте, Grey2003, Вы писали:

G>Привет всем


на строку PROC DisasmInstr

G>2. Для подключения в VC++6.0, надо:

G> 2.1. extern "C" ULONG WINAPI Disasm(ULONG, ULONG)
G> 2.2. добавить *.obj в проект

G>Вопрос: а можно ли програмно подключить *.obj (директива линковщику ?)


см. #pragma comment( lib
---
С уважением,
Сергей Мухин
Re[2]: FASM&OBJ
От: Grey2003  
Дата: 21.04.04 12:31
Оценка:
Про второй вопрос я понял, а как на счет первого


Если вместо stdcall.inc подключить win32a.x и убрать public, то все получается (но public то нужен ((
Re[3]: FASM&OBJ
От: z.s.s. Россия  
Дата: 22.04.04 10:23
Оценка:
Здравствуйте, Grey2003, Вы писали:

G>Про второй вопрос я понял, а как на счет первого



G>Если вместо stdcall.inc подключить win32a.x и убрать public, то все получается (но public то нужен ((



Если компилятор ругался на
public MyFunc


то в версии FASM 1.52 данная директива глюченная и поэтому необходимо использовать следующее
virtual at 0
    call MyFunc
end virtual


И еще, подключая
include '..\Include\Macro\stdcall.inc'


Необходимо подключить
include '..\Include\Macro\fixes.inc'


И Обязательно ПОСЛЕ stdcall.inс, т.к. в fixes.inc есть некоторые дефиниции, которые используются в stdcall.inc а также и в некоторых других макро библиотеках. Но они должны быть определены ПОСЛЕ их изпользования. (это директива FIX) Это техника получения макроса, которая определяет другой макрос.
... И будет Вам счастье !!! ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.