problema con microsoft visual c++

Iniciado por rulovive, 11 Febrero 2011, 22:44 PM

0 Miembros y 1 Visitante están viendo este tema.

rulovive

bueno, despues de rebuscar en la red alguna pista para mi problema, mi ultima opcion fue recurrir a su ayuda... reculta que yo programo en c++ pero jamás habia salido del borland c++ builder, y al entrar a visual c++ y agarrarle el sentido mas o menos, me tópé con un problema que da risa por su simplicidad... pondré primero como haría el codigo en c++ builder. tengo un boton y un Edit:

-------------------------
(evento del boton)
if Edit1->Text="rulo"
   Close();
else
   ShowMessage("incorrecto");
-----------------------------------

en visual c++ lo hice exactamente igual, con la diferencia de que no existen los edits, y son unos campos de texto llamato textbox.. pero el error me dice que la sintaxis en el renglon del if esta incorrecta, de hecho se me hizo raro que al poner la -> no se abriera un menu con las opciones del objeto como sucedia en el builder, y otro error que me da esque no reconoce el ShowMessage...
acaso en visual c++ se programa diferente que en el builder? alguien podria darme un ejemplo de como hacerlo en visual c++? o es solo problema de las bibliotecas que debo utilizar... necesito ayudaaaaaaaaaaaa

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Khronos14

3 cosas:

1.- En C/C++ las condiciones tienen que ir siempre entre paréntesis.
2.- Para comparar un valor se usa ==, pero en tu caso, creo que tendrías que usar strcmp() aunque no estoy seguro.
3.- El componente TEdit son de Delphi y C++ Builder, en el Visual Studio se llama TextBox.

Saludos.

Eternal Idol

Me imagino que Text o el campo que sea sera un std::string y por lo tanto la comparacion sera correcta, para poder usar strcmp - que no tiene mucho sentido debido a que el operador == lo hace internamente - necesitaria llamar al metodo c_str.

ShowMessage no es standard ni es API de Windows, usa MessageBox.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

rulovive

bien... hice lo que me dijeron pero... acabo de notar otra irregularidad. la caracteristica de hacer que las opciones me aparezcan despues de la flechita (intellisense), no funciona, y esto era de gran ayuda para saber si mi sintaxis era la correcta... será que el hecho de que sea la version "resumida" del visual studio hace que no este disponible esta caracteristica?

Eternal Idol

No se, eso ya no tiene nada que ver con el codigo, busca en Internet sobre intellisense y la version que estes usando.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

43H4FH44H45H4CH49H56H45H

Cita de: rulovive en 11 Febrero 2011, 23:40 PM
bien... hice lo que me dijeron pero... acabo de notar otra irregularidad. la caracteristica de hacer que las opciones me aparezcan despues de la flechita (intellisense), no funciona, y esto era de gran ayuda para saber si mi sintaxis era la correcta... será que el hecho de que sea la version "resumida" del visual studio hace que no este disponible esta caracteristica?

Lo del intellisense, funciona en cualquier version del Visual C++ (al menos las que probe desde la v6.0, sean Express, Profesionales, Team System y demás) , la pregunta es que versión de Visual tienes (aunque ya te preguntaron) y que tipo de proyecto, por ejemplo si utilizas windows forms de .NET para que el intellisense te ayude debes tener un código similar a este:

Código (cpp) [Seleccionar]
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
if(textBox1->Text == "si") MessageBox::Show ("es si");
else MessageBox::Show ("no es si");
}
};


Si escribes
Código (cpp) [Seleccionar]
MessageBox-> el intellisense no te ayudará.

En caso de que fuese un proyecto MFC por ejemplo en el Visual Studio 6.0 seria algo asi:
Código (cpp) [Seleccionar]
void CJklDlg::OnButton1()
{
CEdit* edTexto;
CString strDato;
edTexto = (CEdit*) GetDlgItem(Text1);
edTexto->GetWindowText (strDato);
if(strDato=="si") MessageBox("es si");
else MessageBox("no es si");

}


En ambos casos el intellisense funciona correctamente.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

rulovive

tengo la version express de visual studio 2008... por ahi vi una pagina que decia que probra con una forma en blanco y tratara de activar el intellisense con la Form1 (sin muxo codigo para que no hubiera errores), pero al poner ya sea la -> o los :: en la parte de abajo en una barrita de mensajes me dice: "intellisense: no hay informacion disponible. para solucionar problemas busque temas de ayuda", tambien lei en otra parte que el intellisense crea un archivo con extensión .cnb o algo asi, pero en mi visor de soluciones no veo tal archivo por ningun lado.... si esto sigue asi creo que tendré que regresar al builder aunque me guste mas el visual c++

editando: estoy trabajando con el windows forms para aplicaciones visuales

43H4FH44H45H4CH49H56H45H

Nunca tuve el problema que mencionas, yo probaria reinstalar el visual studio.
Dado que el problema es de un proyecto .NET podrias preguntar en el subforo del mismo http://foro.elhacker.net/net-b62.0/
Saluos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W