Citargracias txavales!De nada
![:) :)](https://forum.elhacker.net/Smileys/navidad/smiley.gif)
CitarHola, no te entendí muy bien.
Como si las, al menos dos, cabeceras no fueran suficientes fijate que faltando el library o el import da el mismo error ... ¿Es error al ensamblar o al enlazar?
Por ahi me explique mal, win32ax.inc en fasm, es un include que trae macros complejas similares a las de masm. No hace falta hacer include de ninguna library ya que las trae incorporadas.
.end es una macro, y tiene esto en win32ax
CitarComo ves, hace todos los include que pueda y ya crea la sección de importes. Por eso para usar el código que posteaste, lo que hay que hacer es usar win32a.inc que no tiene las macros complejas.
macro .end label
{
entry label
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL',\
gdi32,'GDI32.DLL',\
advapi32,'ADVAPI32.DLL',\
comctl32,'COMCTL32.DLL',\
comdlg32,'COMDLG32.DLL',\
shell32,'SHELL32.DLL',\
wsock32,'WSOCK32.DLL'
import_kernel32
import_user32
import_gdi32
import_advapi32
import_comctl32
import_comdlg32
import_shell32
import_wsock32
all_api
}
(win32ax.inc incluye win32a.inc)
CitarSeria un error del preprocesador en el caso. (la sección .import se estaria creando dos veces si se usa win32ax. Creo que se le podria dar otro nombre, pero no estoy seguro que sea valido tener dos secciones de importes.)
¿Es error al ensamblar o al enlazar?
con "format pe", fasm crea directamente la ejecutable, no se gasta en producir el archivo objeto.
con "format coff", si crea el archivo objeto que luego se puede enlazar por ejemplo con el vc++.