Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Sobre O Compilador


nolfolk

Pergunta

Oi galera, sou iniciante em C, peguei varios códigos de exemplo na internet porém apenas 1 desses que eu peguei funcionou realmente ( e eu ainda tive que modifica-lo um pouco )

Tratava-se de um hello world

Queria entender como funciona esse esquema de C, C++ e C#, na internet o material sobre as linguagens é muito excasso, por isso, queria pedir a vocês algumas dicas, por exemplo:

1 - Meu compilador é o Dev-C++, que diz tambem aceitar codigos em C apenas mudando uma pequena opção, porém esse código não funcionou em nenhum deles:

// Detecting available LPT ports on an IBM PC
// Borland C++ for DOS
// Stephen Russell Warren <srw1@doc.ic.ac.uk>

#include <stdio.h>
#include <dos.h>

#define MAXLPT 3

void main(void) {
  int      lptno;
  unsigned lptaddr[MAXLPT];

  for (lptno=0; lptno<MAXLPT; lptno++) {
    lptaddr[lptno]=*(unsigned far *)(MK_FP(0x40, 0x008+(lptno*2)));

    if (lptaddr[lptno]) {
      printf("LPT%d found at 0x%04x\n", lptno+1, lptaddr[lptno]);
    } else {
      printf("LPT%d not found\n", lptno+1);
    }
  }
}
esse cod. deveria me dizer as portas lpt disponiveis no PC, ou algo assim... ele retorna um erro na linha
    lptaddr[lptno]=*(unsigned far *)(MK_FP(0x40, 0x008+(lptno*2)));

A pergunta é: por que não consigo compilar o código ? sendo que é um exemplo já pronto, não criado por mim !

(link do exemplo)

http://www.doc.ic.ac.uk/~ih/doc/par/doc/findc.html

Bom, sendo essas a minha maior duvida, com o tempo colocarei outras.

Obrigado.

Tarcísio.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Beleza?

Olha,usei 3 compiladores diferentes e dá erro na mesma linha,e que houve não sei pois esses códigos são muito avançados para mim.

Quanto aos compiladores,o Dev C++ realmente suporta a linguagem C,mas acho limitado,no meu ponto de vista,várias pessoas acham ele muito bom.

Eu uso LCCwin32 e o Borland 5.5 com a Intercefa C ,são compiladores muito bons,além de serem Free.

Link para o comentário
Compartilhar em outros sites

  • 0

A função MK_FP faz parte de um arquivo de cabeçalho chamado i86.h que não faz parte do Dev-C++. Provavelmente é porque esse tipo de acesso (de baixo nível) para saber se existem portas paralelas foi sendo progressivamente substituído por informações do sistema operacional (que gerencia e disponibiliza esse tipo de recurso). Então, dê uma olhada na função EnumPorts: http://msdn.microsoft.com/library/default....ntspol_994j.asp

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
A pergunta é: por que não consigo compilar o código ?

sendo que é um exemplo já pronto, não criado por mim !

Isso acontece geralmente por dois motivos. O primeiro é encontrar códigos C escritos para compiladores específicos. Há alguns anos foram criados padrões para que todos os compiladores funcionassem da mesma maneira, mas até hoje, alguns programadores ainda não seguem esses padrões. O resultado é um código que só funciona com um compilador, em um sistema operacional. Se você não quer que isso aconteça com os seus programas, estude Ansi C. Os seus códigos compilarão em qualquer lugar, inclusive no Linux, e no Mac, sem precisar alterar uma linha de código.

O outro motivo é que alguma biblioteca pode estar faltando. Quando se programa sistemas muito grandes, como um jogo 3D, por exemplo, é inviável implementar cada função do programa. Utilizam-se, então, bibliotecas externas, como GTK, SDL, DirectX, etc. Se você estiver tentando usar um desses sistemas, é preciso instalar todas as bibliotecas das quais ele depende antes de compilar.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...