Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - -MicrO-

#1
Cita de: Arcangel_0x7C5 en 24 Julio 2011, 14:42 PM
pues tienes 2 opciones Cambiar el proyecto a Aplicación MFC o crear otro proyecto que use esa dll

no hay mas...


y como cambio el proyecto? Aplicación MFC seria MFC AppWizard(exe)? o tendria que crearlo de nuevo.?
#2
Cita de: Arcangel_0x7C5 en 24 Julio 2011, 10:41 AM
Lo que ocurre es que has generado una dll que no es ejecutable directamente. Las dll son cargadas por otros programas para usar sus funciones. Para que se ejecutara tendrías que cargarla con otro programa o cambiar el proyecto para que te genere un exe, una aplicacion win32

Saludos

Si, pero no puedo cambiar el proyecto el ejercio esta en MFC AppWizard (dll) y asi tengo que dejarlo y no se con que otro programa ejecutarlo, hay me pide buscar el ejecutable y al seleccionarlo solo me abre el programa mas no me muestra la ventana con el programa
#3
Cita de: Arcangel_0x7C5 en 24 Julio 2011, 00:51 AM
este error:
StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj
Te esta diciendo que a encontrado 2 veces la implementacion del metodo complejo de la clase complejo
Esto pasa porque:
complejo::complejo(){

}
lo colocaste en un archivo de extension .h que se inclulle en varios archivos. Por lo que se lo encuentra varias veces

ah ya, cierto ya logre solucionar los errores ahora me encuentro con esto:




Estoy buscando a ver que es: segun entiendo que cuando uno trabaja en MFC AppWizard (dll) no ejecuta si no que hay que buscarle algo.

ando viendo a ver.
#4
Cita de: Arcangel_0x7C5 en 23 Julio 2011, 21:43 PM
Funciones duplicadas a causa de que defines la implementacion de los metodos de la clase en un fichero .h que se inclulle varias veces. Tienes que declarar la definicion de la clase en un .h y la implementacion de sus metodos la haces en un fichero .cpp a parte que se compila y linkea con los otros

Saludos

Amigo la verdad no te entendi bien.

Es que en esto somos noob, hasta ahora estamos empezando.
#5
Hola a todos yo por aca de nuevo  :xD

Esta vez con un proyecto en "MFC AppWizard (dll)"

el profesor no dios el ejercicio y hay que encontrar errores, luego de resolver el primero me tranque en el segundo error.

quisiera que le hechen un vistaso:


Complejo.cpp

Código (cpp) [Seleccionar]
//fichero main.cpp
#include "stdafx.h"
#include "complejo.h"

void main(void)
{
// declaración de números complejos
complejo c1(1.0, 1.0);
complejo c2(2.0, 2.0);
complejo c3;
c3.SetData(); //pide datos para c3
complejo c4(4.0);
// operadores aritméticos
complejo suma = c1.Suma(c2); //c1+c2
complejo resta = c1.Resta(c3); //c1-c3
complejo producto = c2.Multiplica(c4); //c2*c4
complejo cociente = c1.Cociente(c3); //c1/c3
cout << "Primer complejo: "; c1.Prt();
cout << "Segundo complejo: ";c2.Prt();
cout << "Tercer complejo: "; c3.Prt();
cout << "Suma: " ; suma.Prt();
cout << "Resta: " ; resta.Prt();
cout << "Producto: " ; producto.Prt();
cout << "Cociente: " ; cociente.Prt();
cout << "Ya he terminado." << endl;
}



StdAfx.cpp

Código (cpp) [Seleccionar]
// stdafx.cpp : source file that includes just the standard includes
// complejo.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

#include "complejo.h"




Complejo.h

Código (cpp) [Seleccionar]
// fichero complejo.h
#include <iostream.h>
class complejo
{
private:
double real;
double imag;
public:
// Constructores
complejo(); //defecto
complejo(double, double im=0.0);
// SetThings
void SetData(void);
void SetReal(double);
void SetImag(double);
// GetThings
double GetReal(void){return real;}
double GetImag(void){return imag;}
//Operaciones
complejo Suma(complejo c);
complejo Resta(complejo c);
complejo Multiplica(complejo c);
complejo Cociente(complejo c);
//Salida
void Prt(){ cout << "("<< real <<","<< imag<<"i)"<<endl; }
};


complejo::complejo() // constructor por defecto
{
real = 0.0; imag = 0.0;
}
// constructor general
complejo::complejo(double re,double im)
{
real = re; imag = im;
}
// función miembro SetData()
void complejo::SetData(void)
{
cout << "Parte real: ";
cin >> real;
cout << "Parte imaginaria: ";
cin >> imag;
}
void complejo::SetReal(double re)
{
real = re;
}
void complejo::SetImag(double im)
{
imag = im;
}
complejo complejo::Suma(complejo c)
{
complejo cs;
cs.real = real + c.real;
cs.imag = imag + c.imag;
return cs;
}
complejo complejo::Resta(complejo c)
{
complejo cr;
//escribir el código para restar
cr.real = real - c.real;
cr.imag = imag - c.imag;
return cr;
}
complejo complejo::Multiplica(complejo c)
{
complejo cm;
//escribir el código (a,b) * (c,d) = (ac-bd, ad+bc)
cm.real = real * c.real;
cm.imag = imag * c.imag;
return cm;
}
complejo complejo::Cociente(complejo c)
{
complejo cc;
//escribir (a,b)/(c,d) = ((ac+bd)/(c^2+d^2) , (bc-ad)/(c^2 + d^2 ))
cc.real = real / c.real;
cc.imag = imag / c.imag;
return cc;
}



StdAfx.h

Código (cpp) [Seleccionar]
// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//

#if !defined(AFX_STDAFX_H__7C1B2F84_8EEA_4865_9808_AB1551CD54C1__INCLUDED_)
#define AFX_STDAFX_H__7C1B2F84_8EEA_4865_9808_AB1551CD54C1__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions

#ifndef _AFX_NO_OLE_SUPPORT
#include <afxole.h>         // MFC OLE classes
#include <afxodlgs.h>       // MFC OLE dialog classes
#include <afxdisp.h>        // MFC Automation classes
#endif // _AFX_NO_OLE_SUPPORT


#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC database classes
#endif // _AFX_NO_DB_SUPPORT

#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT

#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT



//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__7C1B2F84_8EEA_4865_9808_AB1551CD54C1__INCLUDED_)



Al Compilar tengo 0 Errores, pero al Ejecutar me da esto:

StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(double,double)" (??0complejo@@QAE@NN@Z) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: void __thiscall complejo::SetData(void)" (?SetData@complejo@@QAEXXZ) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: void __thiscall complejo::SetReal(double)" (?SetReal@complejo@@QAEXN@Z) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: void __thiscall complejo::SetImag(double)" (?SetImag@complejo@@QAEXN@Z) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Suma(class complejo)" (?Suma@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Resta(class complejo)" (?Resta@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Multiplica(class complejo)" (?Multiplica@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj
StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Cociente(class complejo)" (?Cociente@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj
StdAfx.obj : warning LNK4006: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: __thiscall complejo::complejo(double,double)" (??0complejo@@QAE@NN@Z) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: void __thiscall complejo::SetData(void)" (?SetData@complejo@@QAEXXZ) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: void __thiscall complejo::SetReal(double)" (?SetReal@complejo@@QAEXN@Z) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: void __thiscall complejo::SetImag(double)" (?SetImag@complejo@@QAEXN@Z) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Suma(class complejo)" (?Suma@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Resta(class complejo)" (?Resta@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Multiplica(class complejo)" (?Multiplica@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored
StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Cociente(class complejo)" (?Cociente@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored
   Creating library Debug/complejo.lib and object Debug/complejo.exp
Debug/complejo.dll : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.



Tengo rato buscando el error y no doy, segun veo en foros gringos que leo, que el problema es en las cabezeras pero nada no doy  :-\


Salu2
#6
Ok, pues si seguire con Visual C++

El "#include <iostream>" Disculpa se me fue eso es porque estaba cambiando el ejercicio con el cout.

El System pause como en el tema que es en el sub forum lo aprendi en la uni, y aunque es un mal abito, digamos que se usa por necesidad. yo lo coloco para poder ver el programa, si no el programa corre e instantamente se cierra no puedes ver nada, es error del Visual? o que es?

y con respecto al error de float, ya entendi ^^ todo tendria que ser float para que funcione  ;-)
#7
Ah ya entendi...  ::)

Ok. Hice lo que me dijiste y lo puse asi:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
int main()
{
int tb,gb,mb;
float kb,bytes;
printf("----> Programa Para Llevar de TB a GB,MB,KB,Bytes <---- \n");
printf("\n");
printf("Introduzca La Cantidad de TB: \n");
scanf("%d",&tb);
gb=tb*1024;
mb=gb*1024;
kb=mb*1024;
bytes=kb*1024;

printf("El Resultado en GB es= %d  \n",gb);
printf("El Resultado en MB es= %d  \n",mb);
printf("El Resultado en KB es= %f \n",kb);
printf("El Resultado en Bytes es= %f \n",bytes);
printf("\n");
system ("pause");
return 0;

}



Y corre pero asi:



Coloque los valores como float arriba

Ah y lo de que usas si es eso: pero yo uso es Windows y Visual C++ 6.0 es lo que trabajamos en la uni.   :huh:
#8
Pues no es problema por que ya nos han explicado como es, y lo de las funciones nulas no entiendo a que te refieres, no se si es el "system ("pause");"

Si es eso lo usamos por que estamos trabajando en Visual C++ 6.0 y si no lo pones la ventana del programa se cierra inmediatamente luego de correr.

y como te digo soy noob xD. ando empezando... me estoy viendo los tutoriales:

http://foro.elhacker.net/programacion_cc/video_tutorial_programacion_c-t249577.0.html

para ir aprendiendo. :D

P.D: Esta fino tu blog :D
P.D2: En que trabajas tu C++?
#9
Cita de: ハセヲ, en 26 Junio 2011, 19:23 PM
Bueno esto es cosa que no te sabes los modificadores de la función printf..

te he puesto una especie de tabla donde esta el modificador y al lado la salida y un ejemplo..




specifier   Output   Example
c   Character   a
d or i   Signed decimal integer   392
e   Scientific notation (mantise/exponent) using e character   3.9265e+2
E   Scientific notation (mantise/exponent) using E character   3.9265E+2
f   Decimal floating point   392.65
g   Use the shorter of %e or %f   392.65
G   Use the shorter of %E or %f   392.65
o   Unsigned octal   610
s   String of characters   sample
u   Unsigned decimal integer   7235
x   Unsigned hexadecimal integer   7fa
X   Unsigned hexadecimal integer (capital letters)   7FA
p   Pointer address   B800:0000




PD: %i
PD2: si declaras el valor kb y bytes como entero(int) luego no puedes imprimirlo en consola como valor float... ¬¬

Gracias ハセヲ  ;D

Como te digo soy noob aun toy crudo y la mayoria de la gente de mi clase ni se diga, tienes razon lo de float... voy a intentar a ver y te cuento...

Te pregunto tambien sobre "#include <iostream>" y  el cout  que coloque arriba, como es mejor trabajar?

y que me aconsejas para aprender c++ bien  :rolleyes:

Salu2
#10
Hola a todos :D no soy nuevo en el foro por que me registre hace quien sabe cuanto xD. pero si es primera vez que posteo... estoy estudiando programacion y ya nos estan metiendo C++ pero hasta ahora empezando asi que soy noob en esto todavia  :xD

Para clases el professor pidio un programa para llevar de TB a GB,MB,KB...

y pues yo lo tengo asi:

#include <stdio.h>
#include <stdlib.h>
main()
{
int tb,gb,mb,kb,bytes;
printf("----> Programa Para Llevar de TB a GB,MB,KB,Bytes <---- \n");
printf("\n");
printf("Introduzca La Cantidad de TB: \n");
scanf("%d",&tb);
gb=tb*1024;
mb=gb*1024;
kb=mb*1024;
bytes=kb*1024;

printf("El Resultado en GB es= %d  \n",gb);
printf("El Resultado en MB es= %d  \n",mb);
printf("El Resultado en KB es= %f \n",kb);
printf("El Resultado en Bytes es= %f \n",bytes);
printf("\n");
system ("pause");
return 0;

}


El programa me da el resultado en GB y Mb pero KB y Bytes no me da, estoy casi seguro que es el "%f" pero no se por cual cambiar, recordar que ando empezando en esto  :¬¬

Aja el programa esta con prinft, scanft... asi nos enseño la profesora antigua, ahora el nuevo viene a decir que empezemos a usar :"#include <iostream>" y  el cout entre otros, que opinan de esto no es lo mismo?

Salu2 y Gracias  ;D