testPlugin.cpp 1.7 KB
#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;
}