ich kann keine libs einbinden (linker spinnt?)

Offizieller deutscher Support für das MASM32 SDK. Download FAQ

Moderatoren: crack, Krüsty, Marwin

ich kann keine libs einbinden (linker spinnt?)

Beitragvon der asmnewbie » Montag 28. August 2006, 17:50

Wenn ich meinen Minicode assemblieren will läuft erstmal alles ganz normal, bis zum Linken. Dann sagt der: ungültige bibliothek.

Was tun?
der asmnewbie
 

Beitragvon CDW » Montag 28. August 2006, 17:54

Code? Linkeraufruf? womit assemblierst Du? Womit linkst Du? Eventuell andere Warnungen/Fehlermeldungen usw.

Sonst liest sich das wie "Mein rotes Auto fährt nicht, warum?" ;)
CDW
Alter Hase
 
Beiträge: 62
Registriert: Donnerstag 2. Oktober 2003, 17:17

Beitragvon der asmnewbie » Montag 28. August 2006, 18:08

Code: Alles auswählen
.386
.MODEL FLAT, STDCALL

option casemap : none

include \masm32\include\windows.inc

includelib \masm32\lib\user32.lib

MessageBoxA equ _MessageBoxA
ExiProcess  equ _ExitProcess

.stack

.data
   WindowTitle   db "Meine Messagebox"              , 0
   WindowMessage db "Klick mich bis ich verschwinde", 0

.code
start:
   push MB_OKCANCEL
   push offset WindowTitle
   push offset WindowMessage
   push 0
   call MessageBoxA
   
   push 0
   call ExitProcess
END start


ich hab die link.exe schon mit lnk563.exe überschrieben.
dann hab ich einmal nur mit ml.exe probiert un die alles machen lassen,un dann mit ml /c /coff un link /subsystem:windows

weitere Fehler:
_MessageBoxA undefiniert,
_ExitProcess undefiniert
der asmnewbie
 

Beitragvon crack » Dienstag 5. September 2006, 03:04

probier doch mal folgendes:
Code: Alles auswählen
.386
.MODEL FLAT, STDCALL

option casemap : none

include \masm32\include\windows.inc
include \masm32\include\user32.inc

includelib \masm32\lib\user32.lib

MessageBoxA equ _MessageBoxA
ExiProcess  equ _ExitProcess

.stack

.data
   WindowTitle   db "Meine Messagebox"              , 0
   WindowMessage db "Klick mich bis ich verschwinde", 0

.code
start:
   push MB_OKCANCEL
   push offset WindowTitle
   push offset WindowMessage
   push 0
   call MessageBoxA
   
   push 0
   call ExitProcess
END start

Hintergrund ist folgender: zu einer .lib Datei gehört idR eine .inc Datei in der die dazugehöreneden Prototypdefinitionen stehen, also z.B.:
Code: Alles auswählen
_MessageBoxA   proto :dword,:dword,:dword,:dword


Diese Prototypdefinition wird benötigt damit der Linker weiss wieviel Parameter und von welchem Typ der Prozedur übergeben werden.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf


Zurück zu MASM32-Package

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron