testPlugin.cpp 1.08 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;

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;
}