Jak rozłupac plik DLL?

0

Mam DLL-ke i jej source w C.
Chce ja uzyc w moim projekcie.
Jak to zrobic?
Musze sam stworzyc plik .h lub /i .cpp (projekt jest /clr, c++) importujacy funkcje z DLL-a i moge sie opierac tylko na jego zrodle.
Czego szukac w kodzie?
Jak wyłuskac te funkcje? [???]
Ten source to jakies 25 plikow .c i z 20 .h + jakies pliki .rc.

0

Sa 2 możliwości korzystania z bibliotek dll.
DLL

#include <windows.h>

// DLL entry function (called on load, unload, ...)
BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
    return TRUE;
}

// Exported function - adds two numbers
extern "C" __declspec(dllexport) double AddNumbers(double a, double b)
{
    return a + b;
}

Dynamiczna:

#include <windows.h>
#include <stdio.h>

// DLL function signature
typedef double (*importFunction)(double, double);

int main(int argc, char **argv)
{
    importFunction addNumbers;
    double result;

    // Load DLL file
    HINSTANCE hinstLib = LoadLibrary(TEXT("Example.dll"));
    if (hinstLib == NULL) {
        printf("ERROR: unable to load DLL\n");
        return 1;
    }

    // Get function pointer
    addNumbers = (importFunction)GetProcAddress(hinstLib, "AddNumbers");
    if (addNumbers == NULL) {
        printf("ERROR: unable to find DLL function\n");
        FreeLibrary(hinstLib);
        return 1;
    }

    // Call function.
    result = addNumbers(1, 2);

    // Unload DLL file
    FreeLibrary(hinstLib);

    // Display result
    printf("The result was: %f\n", result);

    return 0;
}

statyczna:

#include <windows.h>
#include <stdio.h>

// Import function that adds two numbers
extern "C" __declspec(dllimport) double AddNumbers(double a, double b);

int main(int argc, char *argv[])
{
    double result = AddNumbers(1, 2);
    printf("The result was: %f\n", result);
    return 0;
}

Źródło http://en.wikipedia.org/wiki/Dynamic-link_library.
Przy statycznym należy pamiętać o dołączeniu pliku lib do projektu.
p.s. Mogłeś jeszcze założyć 5 tematów w innych działach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0