sexta-feira, 9 de outubro de 2009

Código Fonte

Segue o código fonte comentado do programa que controlará a esteira. Valeu, galera!

//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(){
hLib = LoadLibrary("inpout32.dll"); //Carrega a DLL na memória.
if(hLib == NULL) //Verifica se houve erro no carregamento.
{
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 no carregamento.{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 no carregamento.{printf("Erro. A função Out32 não foi encontrada.\n");getch();return -1;}


// código

char op;
long int tempo;

void menu(){

printf("-=EQUIPE MATWORK=-");
printf("\n ");printf("\nEsteira elevadora.");
printf("\n\n\n\n");printf("\n ");
printf("\n (L)- Para ligar.\n ");printf("\n (X)- Para Sair.\n "); }

while(1){system("cls");

menu();
sleep(1000);
scanf(" %c", &op);

if((op=='x')(op=='X')){
break;
}
if((op=='l')(op=='L'))
{outportB(0x378,1); //Liga
tempo=0;while(!kbhit())
{
fflush(0); /* Limpa o buffer do teclado para que a tecla apertada não interfira no scanf */

tempo++ ;
sleep(1000);
system("cls");
menu();
printf("\nPressione qualquer tecla para parar!");

printf("\n %d segundos",tempo ); }outportB(0x378,0); //Desliga
printf("\n O tempo gasto foi de: %d segundos",tempo );
sleep(2000);
}
else{ printf("\nOpcao invalida!");
sleep(2000);
}
}//Fim código

FreeLibrary(hLib); //Libera memória alocada pela DLL. Deve ser executado no fim do programa.
}

Nenhum comentário:

Postar um comentário