Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: rulovive en 11 Febrero 2011, 22:44 pm



Título: problema con microsoft visual c++
Publicado por: rulovive en 11 Febrero 2011, 22:44 pm
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


Título: Re: problema con microsoft visual c++
Publicado por: Eternal Idol en 11 Febrero 2011, 23:19 pm
if Edit1->Text=="rulo"


Título: Re: problema con microsoft visual c++
Publicado por: Khronos14 en 11 Febrero 2011, 23:20 pm
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.


Título: Re: problema con microsoft visual c++
Publicado por: Eternal Idol en 11 Febrero 2011, 23:30 pm
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.


Título: Re: problema con microsoft visual c++
Publicado por: 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?


Título: Re: problema con microsoft visual c++
Publicado por: Eternal Idol en 12 Febrero 2011, 00:47 am
No se, eso ya no tiene nada que ver con el codigo, busca en Internet sobre intellisense y la version que estes usando.


Título: Re: problema con microsoft visual c++
Publicado por: 43H4FH44H45H4CH49H56H45H en 12 Febrero 2011, 04:01 am
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
  1. private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
  2. if(textBox1->Text == "si") MessageBox::Show ("es si");
  3. else MessageBox::Show ("no es si");
  4. }
  5. };

Si escribes
Código
  1. 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
  1. void CJklDlg::OnButton1()
  2. {
  3. CEdit* edTexto;
  4. CString strDato;
  5. edTexto = (CEdit*) GetDlgItem(Text1);
  6. edTexto->GetWindowText (strDato);
  7. if(strDato=="si") MessageBox("es si");
  8. else MessageBox("no es si");
  9.  
  10. }

En ambos casos el intellisense funciona correctamente.


Título: Re: problema con microsoft visual c++
Publicado por: rulovive en 12 Febrero 2011, 19:37 pm
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


Título: Re: problema con microsoft visual c++
Publicado por: 43H4FH44H45H4CH49H56H45H en 12 Febrero 2011, 23:36 pm
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.