Привет всем
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 (директива линковщику ?)
Заранее спасибо
Про второй вопрос я понял, а как на счет первого
Если вместо stdcall.inc подключить win32a.x и убрать public, то все получается (но public то нужен

((
Здравствуйте, 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) Это техника получения макроса, которая определяет другой макрос.
... И будет Вам счастье !!! ...