[C con Clase] fatal error LNK1136: invalid or corrupt file

Pedro Osorio pedroosorio777 en gmail.com
Sab Abr 16 03:27:35 CEST 2011


Hola. Yo uso tambien visual C++ 6.0, y el programa tuyo me funciona
muy bien. Sólo debo comentar los clrscr y listo.
  Te recomiendo que reinstales visual c++ 6.0 o quizas te falte algun
service pack de visual.

2011/4/15, wolverine_ch <wolverine_ch en hotmail.com>:
> hola Conclase, bueno pues he hecho una lista enlazada usando clases y al
> probarlo en vc++ 6.0 me sale esto:
>
> Linking...
> C:\Archivos de programa\Microsoft Visual Studio\VC98\LIB\comdlg32.lib :
> fatal error LNK1136: invalid or corrupt file
> Error executing link.exe.
>
> y al probarlo en turbo c++ 4.5 se ejecuta normal pero me sale un linker
> warning que dice: "No module definiton file specified: using defaults " y
> cuando pongo la opcion salir del programa me sale "General protection
> exception" y se selecciona una linea del codigo del destructor.
>
>
> #include<stdio.h>
> #include<string.h>
> #include<conio.h>
> #include<iostream.h>
> #include<stdlib.h>
>
>
>
> class util{
>
>
> char codigo[20];
> char descripcion[30];
> float precio;
> int stock;
>
> //declaracion de puntero sgte en nodos de la lista
> util *sgte;
>
> public:
>  util();
>
>  void llenar();
>  void presentar();
>  friend class listautil;//solo le da permiso a listautil
>   char* getcodigoutil(){return codigo;}
>   float getprecio(){return precio;};
> };
>
>
> //////////////////////////funciones clase util//////////////////////
>  util::util(){
>
> precio=0.0;
> stock=0;
>  codigo[0]=descripcion[0]=NULL;
>  sgte=NULL;
>
>  }
>
>
>
>  void util::llenar(){
>
>  cout<<"\n  Registro de nuevo util: \n" ;
>
>
> 	 cout<<"\nIngrese codigo: " ; cin>>codigo;
> 	 cout<<"\nIngrese descripcion: " ;fflush(stdin); cin>>descripcion;
> 	 cout<<"\nIngrese prrecio: " ; cin>>precio;
> 	 cout<<"\nIngrese stock: " ; cin>>stock;
>
>
>
>  }
>
>
>  void util::presentar(){
>
>   cout<<"\n  Datos de util: \n" ;
>   cout<<"codigo :"<< codigo<<"\n";
> 	 cout<<"descripcion: "<<descripcion <<"\n";
> 	 cout<< "precio: "<<precio<<"\n";
> 		cout<<"stock :"<<stock <<"\n";
>
>  }
>
>
>
>
> ///////////////////////////////////////////claselistautiles///////////////////
>
>  class listautil{
>   int N;
>
>   util *cab,*ultimo;
>
>   public:
>   listautil(){
>    N=0;cab=ultimo=NULL;}
>
>   void inserta(util* );
>   void opcion_agregar_un_util();
>   void presenta();
>   util* buscar(char cod[]) ;
>   void mostrarutil();
>
>   ~listautil(); //DESTRUCTOR
>
>  };
>
> //////////////////////////////////////////////////////////////////////////////
>
> 	void listautil ::inserta(util* A){
> 	A->sgte=NULL;
> 	 if(N==0)
> 		cab=A;
> 	 else{
> 		 A->sgte=ultimo->sgte;
> 		 ultimo->sgte=A;
> 		 }
>
> 	  ultimo=A;
> 	  N++;
>
> 	}
> ////////////////////////////////////////////////////////////////////////////////
>
>  void opcion_agregar_un_util(listautil& LU)
>  {
>   util* aux;
>   aux=new util();
>
>   aux->llenar();
>
>   if(LU.buscar(aux->getcodigoutil())==NULL){
> 	   LU.inserta(aux);
>
> 	}else
> 	  cout<<"\nEl producto ya existe por favor ingrese un producto diferente";
>
> 	getch();
>   }
>
> ///////////////////////////////////////////////////////////////////////////////
>   void listautil:: presenta(){   //PRESENTA TODA LA LISTA DE UTILES
>
>   util *temp=cab;
>
>   cout<<"\n   Datos de la lista:\n";
>
>   while(temp!=NULL)
>   {
> 	 temp->presentar();
> 	 temp=temp->sgte;
> }
>   if(cab==NULL)
> 	  cout<<"\n        no hay utils :(";
>
>   getch();
>   }
>
>
> ///////////////////////////////////////////////////////////////////////////////////////////
>
>
>
>   util* listautil::buscar(char cod[]){
>
>   util *temp=cab;
>
>   while(temp!=NULL){
> 		            /* if(strcmp(temp->codigo,cod)==0)*/
> 		 if(atoi(temp->codigo)==atoi(cod))
> 		return temp;
>
> 		temp=temp->sgte;
>
> 	}
>
> 	return NULL;
>   }
>
>
> ////////////////////////////////////////////////////////////////////////////////////////////////////
>
>
>
> 	  void listautil::mostrarutil()//MUESTRA UN UTIL ESPECIFICO
>  {
>
>   char cod[10];
>   util *pos;
>
>   cout<<"\n ingrese codigo a buscar : ";
>   fflush(stdin);
>   cin>>cod;
>   pos=buscar(cod);
>   if(pos!=NULL)
> 	pos->presentar();
>
>   else
> 	 cout<<"codigo no existe";
>
> 	 getch();
>
> 	 }
>
>
>   listautil::~listautil(){
> 	util* temp;
> 	util* ant;
>
> 	temp=new util();
> 	ant=new util();
> 	ant=cab;
> 	 temp = cab->sgte;
> 	 while(temp!=NULL)
> 	  {
>
>
> 		  delete ant;
> 			  ant = temp;
> 			temp=temp->sgte;
>
> 	  }
>
> 	  cout<<"\n\n Lista completa borrada.";
>
>
>
>   }
>
>
> //////////////////////////////////////////////////////////////////////////////
>
>   void proceso(listautil &LU){
> 	int op;
>
> 	do{
> 	clrscr();
> 	cout<<"\tMENU:\n";
> 	cout<<"\n1. Agregar un util escolar";
> 	cout<<"\n2. Presentar todOS LOS UTILES";
> 	cout<<"\n3. Mostra un util escolar especifico";
> 	cout<<"\n4. Salir";
> 	cout<<"\n  Ingrese opcion:";
> 	cin>>op;
>
>
> 	switch(op){
> 	case 1:opcion_agregar_un_util(LU);
> 				break;
> 	case 2:  LU.presenta();break;
>
> 	case 3:LU.mostrarutil();break;
>
> 	}
> 	}while(!(op==4));
>
>  }
>
>
> /////////////////////////////////////////////////////////////////////////////////////////////////
>
>  int main(){
>   clrscr();
>
>
>   listautil LU;
>
>
>
>  proceso(LU);
>   getch();
>   return 0;
>  }
>
>
>
>  ....que opinan ustedes
>
> SALUDOS
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>




Más información sobre la lista de distribución Cconclase