Méthode de liaison dynamique
A l'aide de la méthode de liaison dynamique, l'application appelle le système d'exploitation au moment de l'exécution pour charger le module Z and I Emulator for Windows EHLLAPI et de localiser le point d'entrée hllapi qui s'y trouve. Cette méthode nécessite plus de code dans l'application mais donne à celle-ci un meilleur contrôle sur les conditions d'erreur. Par exemple, l'application peut afficher un message d'erreur spécifique à l'utilisateur si le module Z and I Emulator for Windows EHLLAPI est introuvable.
Pour utiliser la liaison dynamique, l'application doit charger le module Z and I Emulator for Windows approprié et localisez le point d’entrée. Il est recommandé que le point d'entrée soit localisé par son numéro ordinal et non par son nom. Le numéro ordinal est défini dans le fichier d'en-tête. Le code Windows® 32 bits suivant charge le module EHLLAPI 32 bits IBM® Standard, localise le point d'entrée hlapi et effectue un appel de fonction EHLLAPI.
#include "hapi_c.h" HMODULE Hmod; // Handle of PCSHLL32.DLL long (APIENTRY hllapi)(int *, char *, int *, int *); // Function pointer int HFunc, HLen, HRc; // Function parameters char HBuff[1]; // Function parameters Hmod = LoadLibrary("PCSHLL32.DLL"); // Load EHLLAPI module if (Hmod == NULL) { // ... Error, cannot load EHLLAPI module } hllapi = GetProcAddress(Hmod, MAKEINTRESOURCE(ord_hllapi)); // Get EHLLAPI entry point if (hllapi == NULL) { // ... Error, cannot find EHLLAPI entry point } HFunc = HA_RESET_SYSTEM; // Run EHLLAPI function HLen = 0; HRc = 0; (*hllapi)(&Func, HBuff, &HLen, &HRc); if (HRc != 0) { // ... EHLLAPI access error }