testPlugin.cpp
1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <IOSTREAM>
#include <windows.h>
using namespace std;
//Assinatura dos métodos utilizados na dll
typedef int (WINAPI*metodo1)();
metodo1 initialize;
typedef char* (WINAPI*metodo2)();
metodo2 execute;
typedef int (WINAPI*metodo3)();
metodo3 finalize;
int main(int argc, char *argv[])
{
//Carrega a dll
HINSTANCE hDLL = LoadLibrary("plugin\\Plugin-x86\\CorePlugin.dll");
if (hDLL)
cout << "dll criada com sucesso" <<endl;
else
cout << "dll falhou" <<endl;
//Relaciona método local com o método implementado na dll
initialize=(metodo1)GetProcAddress((HMODULE)hDLL, "coreInitialize");
execute=(metodo2)GetProcAddress((HMODULE)hDLL, "coreExecute");
finalize=(metodo3)GetProcAddress((HMODULE)hDLL, "coreFinalize");
//Executa coreInitialize
int init = initialize();
cout <<"return initialize: " << init <<endl;
//Executa coreExecute
char* exec = execute();
cout << "return execute: " << exec <<endl;
//Executa coreFinalize
int final = finalize();
cout << "return finalize: " << final <<endl;
//Libera dll
FreeLibrary((HMODULE)hDLL);
return 0;
}