Sign in to follow this  
Followers 0
MadSc13ntist

I have a silly question, but i would like to know

17 posts in this topic

I'm sure there are alot of rolling eyes right now... but i really want to move forward in my scripting, and understanding therof. The questions i pose are these. (maybe a good sticky for this section?)

o:)

What is a .dll?

How does one create one for AutoIt?

How does one use a .dll for Au3 scripting?

I hate to be a noobie in any forum but if i'm ever going to actually learn i need to actually ask... :lmao:

I did a fair ammount of Googling and didn't get very far... if anyone even has a few good links to point me to that would be helpful too. :">

Any light that the fine folks in this forum can shed on this subject would help me a great deal on my way to more efficient scripting.

Thank You All in advance!

Share this post


Link to post
Share on other sites



A dll is simply a set of subroutines compiled into a module that is accessable to your script or program. You usually create one by using a compiler. Like a C or assembly compiler.

I like to use Jeremy Gordons GoTools.

Share this post


Link to post
Share on other sites

i went to the page you linked to and i see quite a few tools (all very useful, no doubt) which one these would you suggest i get started with? Linker? i'm still a little fuzzy on the details of where to begin once i have my new tool(s).

Thank you for the quick reply, btw. :lmao:

Are .dlls a uniform (standardized?) format/language? or are they different for what is going to interpret them? (i.e.is there a difference between a .dll that will be used in an Au3 script versus VB.Net, etc?)

Thought it would be a good thing to clear me up a bit more... :">

Thanks again!

Share this post


Link to post
Share on other sites

here is a dll call example through autoit

DLLCall("user32.dll","long","GetDC","hwnd",0)

i don't know if that will help


[font="Times"] If anyone remembers me, I am back. Maybe to stay, maybe not.----------------------------------------------------------------------------------------------------------[/font][font="Times"]Things I am proud of: Pong! in AutoIt | SearchbarMy website: F.R.I.E.S.A little website that is trying to get started: http://thepiratelounge.net/ (not mine)[/font][font="Times"] ----------------------------------------------------------------------------------------------------------[/font][font="Arial"]The newbies need to stop stealing avatars!!! It is confusing!![/font]

Share this post


Link to post
Share on other sites

Through a bit more research i found that .dll's are compiled into a common format (assembly, i think) but i'm trying to find a good beginners guide to writting a dll, maybe even some "hello world" stuff...

I just want to find some good documentation of where to get started creating a dll. Hopefuly something directed, i would really like to find a guide that walks you through what editor to use, a list of commands (and their syntax) and finally how to compile it.

:">

i don't want to give up on this, it would help me sooo much more to use shared functions, and it would be a great learning experience!

I'm calling for a few good links....... Got any worth sharing? :lmao:

Share this post


Link to post
Share on other sites

Dll's are written in programming languages. Unless you actually want to learn a full fledged languaged, you won't be writing any Dll's.

Share this post


Link to post
Share on other sites

Thank you very much!!! this is an honest and acceptable answer, that also explains my difficulty in finding the documentation i was looking for.

That being said, is there a sort of editor one would need in order to manufacture one (.dll) that is available for free? just for the sake of argument...

If a person wanted to make a dll and didn't have the cash to buy software, (or was too cheap to o:) ) is there a solution to coding/saving the file before feeding it into a compiler. can this be done with a simple text editor? (notepad?) SciTe? :lmao:

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

DLL formats would depend on the language you are using to create one.

Here's an example using MASM

;-------------------------------------------------------------------------------------- 
;                          DLLSkeleton.asm 
;-------------------------------------------------------------------------------------- 
.386 
.model flat,stdcall 
option casemap:none 
include \masm32\include\windows.inc 
include \masm32\include\user32.inc 
include \masm32\include\kernel32.inc 
includelib \masm32\lib\user32.lib 
includelib \masm32\lib\kernel32.lib 

.data 
.code 
DllEntry proc hInstDLL:HINSTANCE, reason:DWORD, reserved1:DWORD 
        mov  eax,TRUE 
        ret 
DllEntry Endp 
;--------------------------------------------------------------------------------------------------- 
;                                               This is a dummy function 
; It does nothing. I put it here to show where you can insert  functions into 
; a DLL. 
;---------------------------------------------------------------------------------------------------- 
TestFunction proc 
    ret 
TestFunction endp 

End DllEntry 

;------------------------------------------------------------------------------------- 
;                             DLLSkeleton.def 
;------------------------------------------------------------------------------------- 
LIBRARY   DLLSkeleton 
EXPORTS   TestFunction
There are some free C compilers and assembly compiliers that will do this. I know of a couple of shareware Basics that can also.

I think you would have to look into C or assembly and learn one of those to get free dll creation.

Edited by Trainee

Share this post


Link to post
Share on other sites

Anything can write source code. But you have to have a compiler in the language you write it in in order to compile it. There are free compilers for various languages. But as far as your question, you can write it in DOS' edit if you wish.

Share this post


Link to post
Share on other sites

very good info to know. :lmao: I hope you don't mind me pan-handling for a second-hand education from you folks... but i definately learned a few things that i didn't previously understand....

It is one thing to not have answers and quite another to have someone edit the questions you are asking to build the road i need to be taking in order to get where i want to go. :">

Thanks Valik, i can always count on your posts to be informed, frank and to the point.

Thanks for the code sample trainee! that is interesting to see now that i have had a chance to study it a bit.

A round of Props! o:)

Share this post


Link to post
Share on other sites

I think you already have your answer but I just wanted to add that it is very easy to create DLLs in PureBasic. PureBasic is not free (60 euros) but I do not think you will find an easier language for creating DLLs. Here is a sample of all the code you need to create a dll which produces a dynamic dialog box:

ProcedureDLL PopUpMessage(title.s,message.s)
  MessageRequester(title,message,#MB_ICONWARNING)
  ProcedureReturn 1
EndProcedure

When you compile this to a file called "test.dll" then you could use it in AutoIT like so:

$dll = DllOpen("test.dll")
$result = DllCall($dll,"none","PopUpMessage","str","Test","str","Test My DLL")
DllClose($dll)

To compile in PureBasic is easy, inside the IDE select "Shared dll" as the executeable type then "Create executeable".

Hope this helps.

Share this post


Link to post
Share on other sites

That is also very good to know!!! i love hearing about new langs to learn especially if they can help speed me on my way to quick-fix-ville....

But to be honest i just got back from Borders after picking up:

C for Dummies (2nd Edition) by Dan Gookin. (ISBN: 0-7645-7068-4)

I have decided that i should get on my way to C... this book looks incredibly simple and very short but very easy to understand (and retain). I love AutoIt and will use it into the ground for my scripting needs... but it gets to a point when you have to learn a legit language if you want to use AutoIt more effectively. Besides, these forums seem to be about expanding a person's understanding of how to get the most efficiency from a computer.

I was a batch kid, then i moved up to html, then a miniscule ammount of java, then a little asp, then a tiny bit of VB6... but i just need to draw the line in the sand and say darn it!... i WILL learn C! there are enough FREE resources out there to make this happen in a big way and i am LAZY not to take advantage of them. If only to expand my understanding of what is happening behind the scenes.

I have a good book to get me started, the internet has millions of resources for this, and linux groups are usually helpful to people like me who are trying their best to get a free education. Thank all of you for helping me make this step!!!

:lmao:

I hope that once my understanding has expanded enough, i hope i may help others as i have been helped!

Share this post


Link to post
Share on other sites

Not to hijack a topic, but this is on the right track on what I'm looking to do. I'm looking to make a dll that contains icons. (Just like the shell32.dll) I'm making a update to the SciTe toolbar, and I wanted to make it easy for the use to select the icon they would like for a function. It would make it simpler for me to code also. I googled around a bit, and was somewhat lost. Any direction would be welcomed.

Share this post


Link to post
Share on other sites

You can create and learn about dll’s in Visual Basic which is very similar to Autoit language. I used the tutorials here

I found it a good place to start before moving onto the C languages.

@Volly If you just want to store icons or images in a dll you can use Icon Sushi to create a icon library .icl file, (Free) and then use GConvert to convert that to dll, (around $20)

Share this post


Link to post
Share on other sites

Volly...is there any reason that it has to be a DLL ? It sounds to me that you just want a single container

for multiple icons, which a ICL-file is. Search for any free icon-editor and I'm sure you'll find one that can

create ICL-libraries.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0