//CHAMADA DINAMICA A DLL -> INPOUT32.DLL #include #include #include #include //Necessário para: LoadLibrary(), GetProcAddress() e HINSTANCE. //Declaração dos ponteiros para função. typedef short _stdcall (*PtrInp)(short EndPorta); typedef void _stdcall (*PtrOut)(short EndPorta, short valor); HINSTANCE hLib; //Instância para a DLL inpout32.dll. PtrInp inportB; //Instância para a função Imp32(). PtrOut outportB; //Instância para a função Out32(). int main(int argc, char *argv[]) { hLib = LoadLibrary("inpout32.dll"); //Carrega a DLL na memória. if(hLib == NULL) //Verifica se houve erro. { printf("Erro. O arquivo inpout32.dll não foi encontrado.\n"); printf("Eh necessario que o arquivo .dll esteja na mesma pasta deste programa!!\n"); getch(); return -1; } inportB = (PtrInp) GetProcAddress(hLib, "Inp32"); //Obtém o endereço da função Inp32 contida na DLL. if(inportB == NULL) //Verifica se houve erro. { printf("Erro. A função Inp32 não foi encontrada.\n"); getch(); return -1; } outportB = (PtrOut) GetProcAddress(hLib, "Out32"); //Obtém o endereço da função Out32 contida na DLL. if(outportB == NULL) //Verifica se houve erro. { printf("Erro. A função Out32 não foi encontrada.\n"); getch(); return -1; } //SEU CÓDIGO FICA AQUI!!! system("pause"); FreeLibrary(hLib); //Libera memória alocada pela DLL. Deve ser executado no fim do programa. }