Metropoli BBS
VIEWER: calldll2.c MODE: TEXT (ASCII)
#ifdef __GNUC__
#include <wingnuc.h>
#endif
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include "dlltest.h"

typedef int (*DLLFUNC) (int, int);

int call_dll(DLLFUNC func, int x1, int x2)
{
    return (*func) (x1, x2);
}

int main()
{
    HINSTANCE hLib;
    DLLFUNC lpfnMin, lpfnMax;
    int x1, x2;

    hLib = LoadLibrary("DLLTEST.DLL");
    if (!hLib) {
        puts("Cannot load dll fails");
        exit(1);
    }
    lpfnMax = (DLLFUNC) GetProcAddress(hLib, "Maximum");
    if (!lpfnMax) {
        puts("Error: GetProcAddress(Maximum)");
        exit(1);
    }
    lpfnMin = (DLLFUNC) GetProcAddress(hLib, "Minimum");
    if (!lpfnMin) {
        puts("Error: GetProcAddress(Minimum)");
        exit(1);
    }

    x1 = 2;
    x2 = 3;
    printf("Maximum (%d,%d) = %d\n", x1, x2, call_dll(lpfnMax, x1, x2));
    printf("Minimum (%d,%d) = %d\n", x1, x2, call_dll(lpfnMin, x1, x2));

    FreeLibrary(hLib);

    return 0;
}
[ RETURN TO DIRECTORY ]