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