Autor Tema: Una serie de preguntas sobre VisualC++  (Leído 12328 veces)

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

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Una serie de preguntas sobre VisualC++
« en: 30 de Junio de 2011, 18:31:13 »
Hola amigos, quería hacer unas preguntas sobre Visual C++ pues tengo unas detalles que no doy por solucionar con MSDN y todo el internet a disposición.

En VisualBasic tengo lo siguiente:
Código: vb.net
  1. Log.AppendText(vbCrLf + vbCrLf + "Nueva Sesión" + vbCrLf + Now())   'Marca Hora de inicio de nueva sesión


En Visual C++ esto:
Código: C++
  1. Log->AppendText("\r\n\r\n Nueva Sesion\r\n ");

Lo que me hace falta es reemplaza lo que se conoce en VB como Now() pero no logro hacer en VisualC++.

¿Me pueden ayudar por favor con esta primera duda?

Muchas gracias!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una serie de preguntas sobre VisualC++
« Respuesta #1 en: 30 de Junio de 2011, 19:45:20 »
Lo podes resolver de la siguiente manera:

Código: C++
  1. DateTime^ T1;
  2.                          String^ Text;
  3.  
  4.                          T1=DateTime::Now;
  5.                          Text=String::Format("{0:G}",T1);

Información:

http://msdn.microsoft.com/es-es/library/system.datetime(v=VS.90).aspx

http://msdn.microsoft.com/es-es/library/1ksz8yb7(v=vs.80).aspx


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Una serie de preguntas sobre VisualC++
« Respuesta #2 en: 02 de Julio de 2011, 01:39:36 »
Hola Suky, quería agradecerte, me ha funcionado perfecto.



Ahora quisiera agregar una pregunta mas:


Intento abrir una URL desde un Botón. Para ello encuentro que la mejor manera de hacerlo es accediendo al ShellExecute de la siguente manera:

Código: C++
  1. ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);

el problema radica en que me muestra el siguiente error:
Código: C++
  1. Error   1       error C2664: 'ShellExecuteW' : no se puede convertir el parámetro 2 de 'const char [5]' a 'LPCWSTR'


Encontré en internet esta solución, pero no me soluciona mi problema en VisualC++2010, la solución habla de cambiar tipo de caracteres UNICODE, pero al hacerlo me saca mas errores.

Pareciera que entiende .com como una extensión de MSDOS incompatible...  :?

Muchas gracias por cualquier ayuda!


Por acá encontré algo pero no tengo idea como usarlo.
Citar
"open" is a (const) char*. _T is there to make it unicode (if I understand correctly..). So _T(url.c_str()) should work.
« Última modificación: 02 de Julio de 2011, 02:03:19 por LABmouse »

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una serie de preguntas sobre VisualC++
« Respuesta #3 en: 02 de Julio de 2011, 10:24:00 »
Yo lo hago así:

Código: [Seleccionar]
System::Diagnostics::Process::Start("www.micros-designs.com.ar");
Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Una serie de preguntas sobre VisualC++
« Respuesta #4 en: 04 de Julio de 2011, 13:04:50 »
Amigo sorprendente tu ayuda en todopic, me ha funcionado de una!. Gracias!



ME llevo de pelea desde hace ya 2 días y la verdad lo intento hacer como lo haría en el microcontrolador, pero no me funciona pero nada.

Tengo un TextBox, en el solo permito la escritura de números y los caracteres de la A hasta la F pues quiero que escriban una cadena de números en hexadecimal. Esto funciona perfecto.

Pero ahora quiero tomar ese dato que escribieron en el textbox y llevarlo a una variable tipo char para ser enviado por puerto serial. En VisualBasic lo hacia de la siguiente manera:

Código: vb.net
  1. Dim Value As Byte
  2. Value = CByte("&H" & TbMsgHex.Text)
  3. SerialPort1.Write(New Byte() {CByte(Value)}, 0, 1)

Pero en Visual C++ no se como lograr la conversion, es mas no logro encontrar como conocer la longitud de una cadena de texto en VisualC++.... Ayer busque un libro cerca de casa pero ya no venden libros de Visual C++, ahora todo es visual C#..  :?

Saludos!




Hola, bueno parece que después de preguntar aparecen algunas ayudas en MSDN.

Por acá algo que puede servir como guía:

http://msdn.microsoft.com/es-es/library/system.convert(v=VS.80).aspx

« Última modificación: 04 de Julio de 2011, 13:15:17 por LABmouse »

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una serie de preguntas sobre VisualC++
« Respuesta #5 en: 04 de Julio de 2011, 13:19:27 »
Exacto, está Convert::toxxxx()... El problema está enviar esos datos por puerto serial, que hasta donde probé y recuerdo solo acepta caracteres ascii entre 0d a 128d, después da cualquier cosa  :tongue: Hay que estudiar ese tema...


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Una serie de preguntas sobre VisualC++
« Respuesta #6 en: 04 de Julio de 2011, 13:26:07 »
Hola amigo Suky. para resolver el problema que dices que solo acepta hasta 128, Bruno dio la solución, para ello se sobrecarga el argumento de la siguiente manera:

Código: vb.net
  1. SerialPort1.Write(New Byte() {CByte(Value)}, 0, 1

Solo queda pasar eso de VB a VC++.

ya te comento como me va.

SALUDOS!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una serie de preguntas sobre VisualC++
« Respuesta #7 en: 04 de Julio de 2011, 15:59:02 »
Solo queda pasar eso de VB a VC++.

Así era:  :mrgreen:

Código: [Seleccionar]
array<unsigned char>^ k= gcnew array<unsigned char>(1);

if(textBox1->Text->CompareTo("")!=0){
k[0]=Convert::ToByte(textBox1->Text);
serialPort1->Write(k,0,1);
}


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Una serie de preguntas sobre VisualC++
« Respuesta #8 en: 04 de Julio de 2011, 17:33:21 »
Aja!, ni se me ocurría esa manera de lograrlo...

Ahora voy a pasar esto para que reciba cadenas escritas en hexadecimal.

SALUDOS y GRACIAS!



Listo, para indicarle el formato a base del numero escrito se hace de la siguiente manera:

Código: C++
  1. k[0]=Convert::ToByte(TextBox->Text,16);
« Última modificación: 04 de Julio de 2011, 17:58:13 por LABmouse »

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una serie de preguntas sobre VisualC++
« Respuesta #9 en: 04 de Julio de 2011, 19:09:23 »
Perdón, me olvide que el string estaba en hexa  :undecided: Está bueno, me obligaste a encontrarle la vuelta, y vamos aprendiendo cosas muy útiles!  :-/

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Una serie de preguntas sobre VisualC++
« Respuesta #10 en: 05 de Julio de 2011, 18:14:34 »
Hola!,

Bueno se me ha presentado un problema de gran magnitud.

Sucede que hasta el momento todo el proyecto va caminando bien. Se me presenta la necesidad de montar sobre el proyecto unos componentes externos a VisualStudio. Se dejaron instalar bien, y agregar al proyecto bien. PERO!, cuando intento compilar, me dice que ese componente esta para la versión de framework 3.5 y que mi proyecto esta corriendo con la 4.0.  :? Y NO ENCUENTRO DONDE CAMBIARLE LA VERSIÓN DEL FRAMEWORK..

Encuentro para VB y VC# acá:  http://msdn.microsoft.com/en-us/library/bb772098(v=vs.90).aspx

Pero no es igual para Visual C++, ¿Saben como hacerlo?.

Gracias!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una serie de preguntas sobre VisualC++
« Respuesta #11 en: 05 de Julio de 2011, 18:36:42 »
En el 4º comentario del link que pusiste está, me parece, la solución.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Una serie de preguntas sobre VisualC++
« Respuesta #12 en: 05 de Julio de 2011, 20:01:57 »
HOla,

Como bien dices amigo Suky, hay alguien que comento lo siguiente:

  • Right click on project in Solution Explorer and click Unload project
  • Right click on unloaded project in Solution Explorer and select Edit <projectname>.vcxproj
  • In project XML file locate node <PropertyGroup Label="Globals">
  • In that node locate node <TargetFrameworkVersion> (if the node cannot be found, add it)
  • Inner text of the node defines target framework. It can be v2.0,v3.0, v3.5 or v4.0
  • Save vcxproj file and close it
  • Right click on unloaded project in Solution Explorer and click Reload Project

Pero no me aparece la primera opción "Right click on project in Solution Explorer and click Unload project"... Suky, a ti si te aparece en tus proyectos?

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Una serie de preguntas sobre VisualC++
« Respuesta #13 en: 05 de Julio de 2011, 20:07:08 »
Intente crear un proyecto nuevo pero esta vez usando Framework 3.5 y me ha sacado el siguiente error:


Error   1   error MSB8009: .NET Framework 2.0/3.0/3.5 tiene como destino el conjunto de herramientas de la plataforma v90. Asegúrese de que Visual Studio 2008 está instalado en el equipo.   C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets   292   6


Por favor díganme que es posible bajar el proyecto de Framework 4.0 a framework 3.5 en Visual C++ 2010..  :8}
« Última modificación: 05 de Julio de 2011, 20:20:43 por LABmouse »

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una serie de preguntas sobre VisualC++
« Respuesta #14 en: 05 de Julio de 2011, 20:44:27 »
Pero no me aparece la primera opción "Right click on project in Solution Explorer and click Unload project"... Suky, a ti si te aparece en tus proyectos?

Yo trabajo con la versión 2008, simplemente porque cuando baje el 2010 no tenia el intelligent  :mrgreen: En el 2008 puedo hacer los pasos 1 y 2, pero no encuentro <PropertyGroup Label="Globals">  :tongue:


Saludos!
No contesto mensajes privados, las consultas en el foro