Test Foro de elhacker.net SMF 2.1

Programación => Programación General => ASM => Mensaje iniciado por: Usuario887 en 28 Febrero 2021, 01:03 AM

Título: Simbolo no resuelto por el linker.
Publicado por: Usuario887 en 28 Febrero 2021, 01:03 AM
Hola.

Estaba buscando una forma de obtener la linea de comandos desde un programa escrito para MASM con la funcion GetCommandLineA de kernel32.lib, pero el linker no resuelve el simbolo:

CitarPOLINK: error: Unresolved external symbol '_GetCommandLineA'.

Lei sobre las convenciones de llamada en un articulo mencionado por @Eternal Idol: http://unixwiz.net/techtips/win32-callconv.html#decor (http://unixwiz.net/techtips/win32-callconv.html#decor) pero la verdad no estoy seguro de en que esta afectando esto aqui.

El codigo:

Código (asm) [Seleccionar]
.686p
.model flat, stdcall

includelib \masm32\lib\msvcrt.lib
includelib \masm32\lib\kernel32.lib

printf proto C, :dword
exit proto C, :dword

extern stdcall GetCommandLineA: proc

t macro i:vararg
local s
const segment
s db i, 0
const ends
exitm <offset s>
endm

.data?
db ?

.data
db ?

.code

start:
call main
invoke exit, 0h

main proc

call GetCommandLineA

ret
main endp

end start
Título: Re: Simbolo no resuelto por el linker.
Publicado por: Eternal Idol en 28 Febrero 2021, 01:20 AM
Código (asm) [Seleccionar]
extern stdcall GetCommandLineA@0: proc
...
call GetCommandLineA@0
Título: Re: Simbolo no resuelto por el linker.
Publicado por: Usuario887 en 28 Febrero 2021, 14:17 PM
No puede ser... eso habia intentado pero con proto e invoke. ¿Por que no funciona con proto e invoke?

Código (asm) [Seleccionar]
GetCommandLineA@0 proto stdcall

CitarPOLINK: error: Unresolved external symbol '_GetCommandLineA@0@0'.

Título: Re: Simbolo no resuelto por el linker.
Publicado por: Eternal Idol en 28 Febrero 2021, 17:49 PM
Pero lo es, con PROTO e INVOKE no hace falta explicitar el decorado.


Código (asm) [Seleccionar]
GetCommandLineA PROTO STDCALL
...
invoke GetCommandLineA
Título: Re: Simbolo no resuelto por el linker.
Publicado por: Usuario887 en 28 Febrero 2021, 19:35 PM
Pues tienes razon... me estoy acordando de los tropiezos de aprender una nueva forma de programacion.

Gracias por tu ayuda y atencion.
Saludos.
Título: Re: Simbolo no resuelto por el linker.
Publicado por: Eternal Idol en 28 Febrero 2021, 22:05 PM
De nada  ::)