the prototype for SetPixel is
and this prototype would in masm look like:
HDC hdc, // handle of device context
int X, // x-coordinate of pixel
int Y, // y-coordinate of pixel
COLORREF crColor // pixel color
SetPixel PROTO :DWORD,:DWORD,:DWORD,:DWORD
(in masm this is only used for macros such as Invoke which calls the function, though normally you just push the params on the
stack and call the functions etc. so that was a bad example. )
but think of it as a c++ source file. You have a c++ source file with a
simple function. To use this function in another c++ sourcefile you
need to include the c++ header file(which contains the prototype).
this is kinda similar for load-time libraries. You need to know the
prototypes of the functions to be able to use them...
and these prototypes must be written in the language you're within..
the functions that resides in the DLL doesn't care from what
language you're calling them as long as they get the proper
params pushed onto the stack etc..