none
¿Por qué a este código fuente no me lo compila el programa wxDev-C++ en Windows 7 Starter? RRS feed

  • Pregunta

  • Al intentar compilar el siguiente código:
    #include <cstdlib>
    #include <iostream>
    #include<dos.h>
    #include<stdio.h>
    #include<math.h>
    #include<conio.h>
    #include<io.h>
    int a,v ;
    using namespace std;
    int main(int argc, char *argv[])
    {
        outport(0x378,1);   // saca un 1 por el puerto paralelo
    getch();            // espera a que se presione una tecla
        for(a=0;a<8;a++){
        v=pow(2,a);         // 2 elevado a A
        outport(0x378,v);   // saca el valor de v , rotacion de bit
        getch();          // espera a que se presione una tecla
        }
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    el programa me muestra los siguientes errores:
    E:\SinNombre1.cpp In function `int main(int, char**)':
    14 E:\SinNombre1.cpp `outport' was not declared in this scope
    18 E:\SinNombre1.cpp [Warning] converting to `int' from `double'
    y quisiera saber por que el programa no me compila el código ¿Que debo complementar al programa para que me compile el código o que debo complementar a mi código para que quede bien escrito.


    martes, 14 de junio de 2011 14:58

Todas las respuestas

  • El compilador te está diciendo que outport() no está declarado en ningún sitio, por lo que no sabe qué es.

    El segundo error está en que pow() devuelve un double y tu lo estás asignando a un entero.

    Lo primero no creo que te funcione en Windows 7 aunque compile, porque Windows ya no trae puertos desde hace muchos años.

    Si lo que quieres es imprimir sobre una impresorar en paralelo en modo RAW (sin el driver de windows), tienes que usar CreateFile y ReadFile y WriteFile:

    http://www.google.com/url?sa=t&source=web&cd=1&ved=0CCMQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Faa363858(v%3Dvs.85).aspx&ei=oMv4TZGVIpS88gPJq6StCw&usg=AFQjCNGFVkmvwwUc2S9Xq567BY0CuRwBlw

    Y abir un fichero con el nombre de la impresora.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    miércoles, 15 de junio de 2011 15:11
    Moderador
  • Al parecer la función outport no existe en las librerías que tienes, para programar puerto serial en Visual C++ puedes ver este link:

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

     

    Tu código quedaría así:

    #include <iostream>
    #include <conio.h>
    using namespace std;
     
    int main(int argc, char *argv[])
    {
    	int a, v;
      _outp(0x378, 1);		// saca un 1 por el puerto paralelo
     
    	cin.get();				// espera a que se presione una tecla
     
      for(a = 0; a < 8; a++)
    	{
    		v = pow(2.0, a);	// 2 elevado a A
     
    		_outp(0x378, v);	// saca el valor de v , rotacion de bit
     
    		cin.get();			// espera a que se presione una tecla
      }
     
      system("PAUSE");
      return EXIT_SUCCESS;
    }
    

     

    Lo probé en Windows 7 Home Premium, para que te funcione puede que necesites ejecutar el programa como administrador.

     

     

     

     

     

    miércoles, 15 de junio de 2011 15:18