Why doesn't FASM want to create fixups for this DLL:

format pe gui dll

entry DLLEntry

mov eax,1
ret 12


mov ebx,
mov edx,


ret 8

data export

dd 0,0,0,rva DLLName,1
dd 1,1,rva Adresses,rva Names,rva Ordinals

dd rva Proc

dd rva _Proc

dw 0

DLLName db 'zzz.dll',0

_Proc db 'Proc',0

end data

data fixups

end data


PEBrowse shows that there is space for relocations in DLL, but it is empty.
Posted on 2002-10-06 09:53:22 by longer
Currently there is nothing in your code that would need to be relocated. If you - for example - put there instruction like "mov ebx,DllEntry", it would create a fixup.
Posted on 2002-10-06 10:10:05 by Tomasz Grysztar
And is there any code to be relocated in the attached file?
When I try to import DDBin2ASCII proc the system says that the DLL is not valid because it can't be loaded at needed address and is not movable to another one. :(
What should I do?
Posted on 2002-10-06 10:44:43 by longer
Well, it's seems like a Windows stupidity, but you have to add at least one instruction that needs fixup, otherwise Windows will think that your code is not moveable, because it has no fixups (which is not true, just your code is moveable even without fixups).
You can also change the default loading address with the at operator in the "format PE" line.
Posted on 2002-10-06 11:10:46 by Tomasz Grysztar
Excuse me, Privalov, but I am nearly new to both assembly and PE format, and I don't know which instructions need fixups.


You wrote that another way of getting out of my situation is to change the default loading address. Can I write fixups manually instead of it? If yes, drop me some links where I can find how to do it, pleeease :grin: .
Posted on 2002-10-06 11:27:20 by longer
Thanks, Privalov!
Everything works fine with another default loading address :alright: .
Posted on 2002-10-07 00:12:22 by longer