Une API, c'est un terme générique pour désigner un ensemble de fonction (d'objets, ...) qui permettent d'accéder à un ensemble de fonctionnalités déja implémentées.
L'idée, c'est que tu n'as pas à savoir comment celle ci fonctionne. Tu sais juste comment t'en servir et le résultat que tu vas obtenir.
Par exemple, Direct3D est une API. Tu as un ensemble de fonctions que tu peux utiliser pour gérer des mondes en 3 dimensions. Tu n'as pas besoin de savoir comment elle fonctionne, comment elle accède aux fonctionnalités des cartes graphiques...
Tu utilises les fonctions fournies et ca marche
Une DLL, c'est un objet qui contient du code exécutable. Qui peut, par exemple, contenir les fonctions d'une API.