Yeah, I understand that a dll file is not source code, but actually source code already compiled into a language which the computer understands. And i think...

declaration = predefining a function, declaring it.

definition = the code inside a function which describes it behavior.

implementation = Is implementation when we use the function, when it is turned into code which the computer understands?