DLLs  ...



To declare a Label as an Exported Function, all you have to do is to set an ending double colon to the Label name:


MyDllFunction::



In RosAsm menu, [File] / [Output] options will open first a multi-purpose Dialog that allows the user to define the usual values for PEs: Stack and Heap Min and Max sizes and to define the output extension and type. If you choose [a DLL] option, when closing this first Dialog, RosAsm opens a second one, to define the DLL Flags and the default upload address.


The default Flags are PROCESS_ATTACH / PROCESS_DETACH.


The Default upload Address may vary from 040_0000 to 0_8000_0000. 040_0000 is the default upload Address for PE Applications. 0_8000_0000 is the beginning of the space reserved for the System DLLs. So, these two limits should not be used for users DLLs. 


In order to avoid relocations, you can define these Addresses for your DLLs.


Beginners, if a relocation is required, everything works without any problem. So, if you do not understand this yet, just leave the RosAsm 0_1000_0000 default address for DLLs and continue, the OS knows what to do. 


The Edit box for this address expects Hexa values. The given value is aligned on 01000 boudaries by RosAsm. The 0_8000_0000 value is rejected, but the 040_0000 value is accepted (useful to make experiments on DLLs' relocations).


~~~~~~~