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
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.