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

------------------------------
format pe gui dll

entry DLLEntry

DLLEntry:
mov eax,1
ret 12

Proc:

mov ebx,
mov edx,

...

ret 8

data export

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

Adresses:
dd rva Proc

Names:
dd rva _Proc

Ordinals:
dw 0

DLLName db 'zzz.dll',0

_Proc db 'Proc',0

end data

data fixups

end data
------------------------------

:confused:

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.

:stupid:

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