Une dll contient une table d'exportation. Cette zone indique a l'exterieur quelles sont les fonctions accessibles, et permet de faire la correspondance entre noms "chaine" et points d'entree de chacune des fonctions.
Si tu ouvres une DLL avec un editeur hexadecimal et que tu cherches un peu, tu retrouveras les noms des fonctions qui sont exportees, moyennant une eventuelle decoration (i.e le compilateur complete le nom, par exemple pour distinguer les fonctions surchargees ).
Il n'y a pas de verification du nombre de parametres a l'execution, dans la mesure ou une DLL ne contient pas cette information la. Encore moins de verification de type.