testPlugin.cpp
1.7 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#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;
typedef int (WINAPI*metodo4)();
metodo4 coreUpdateCheck;
typedef int (WINAPI*metodo5)();
metodo5 coreUpdateInstall_player;
typedef int (WINAPI*metodo6)();
metodo6 coreUpdateInstall_dict;
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");
coreUpdateCheck=(metodo4)GetProcAddress((HMODULE)hDLL, "coreUpdateCheck");
coreUpdateInstall_player=(metodo5)GetProcAddress((HMODULE)hDLL, "coreUpdateInstall_player");
coreUpdateInstall_dict=(metodo6)GetProcAddress((HMODULE)hDLL, "coreUpdateInstall_dict");
//Executa coreInitialize
int init = initialize();
cout <<"return initialize: " << init <<endl;
int a = coreUpdateCheck();
cout <<"return coreUpdateCheck: " << a <<endl;
int b = coreUpdateInstall_player();
cout <<"return coreUpdateInstall_player: " << b <<endl;
int c = coreUpdateInstall_dict();
cout <<"return coreUpdateInstall_dict: " << c <<endl;
//Executa coreFinalize
int final = finalize();
cout << "return finalize: " << final <<endl;
//Libera dll
FreeLibrary((HMODULE)hDLL);
getchar();
return 0;
}