• Viernes 26 de Abril de 2024, 06:57

Mostrar Mensajes

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


Mensajes - rfog

Páginas: [1] 2 3 ... 7
1
C/C++ / Re:Heap de Windows
« en: Lunes 8 de Julio de 2013, 20:57 »
Hola.

Básicamente no puedes usar el heap libre de Windows, ni el espacio de direcciones no asignado.

Si quieres gestionarte tu mismo la memoria, puedes usar HeapAlloc() y familia, y construirte tu dentro lo que quieras, pero primero tienes que reservar uno o la aplicación te explotará en las manos.

2
Visual C++ / Re:error con libxml2
« en: Martes 7 de Agosto de 2012, 16:43 »
Lo primero es que este es un foro de Visual C++, no de GCC, así que la pregunta debería haber sido hecha en el padre.

Lo segundo es que el compilador desconoce de dónde vienen xmlNodeGetContent y demás, por lo que, de momento, al menos te falta incluir algunos ficheros .h más. ¿Cuáles, pues ni idea?

3
Visual C++ / Re:Problema con CStdioFile::WriteString
« en: Miércoles 25 de Abril de 2012, 14:38 »
Desde hace tiempo, Visual C++ funciona con unicode por defecto, por lo que o bien añades una L delante de cada cadena o bien te vas a las opciones del compilador y eliges "not using unicode". Mi recomendación es que añadas un include a tchar.h y luego uses las macros _T() y las funciones genéricas que empiezan con _t para que luego todo colapse en unicode o en ansi según las opciones del compilador.

4
Visual Basic 6.0 e inferiores / Re:Problema Disable UAC
« en: Lunes 2 de Abril de 2012, 09:24 »
No sé si el código funciona o no, pero intentar deshabilitar UAC en XP es como correr delante de un ladrón para pillarlo: XP no tiene UAC y por lo tanto esas claves del registro no existen...

5
C# / Re:Ejecutar procesos en otra maquina remotamente
« en: Martes 20 de Marzo de 2012, 11:02 »
Explicación sobre los servicios: http://msdn.microsoft.com/es-es/library/d56de412(v=vs.90).aspx

El que una aplicación se cierre sola (sin que el usuario la cierre desde el administrador de tareas, por ejemplo) suele deberse a que tiene algún error. En teoría, y sin errores, no debería cerrarse nunca. Lo más típico cuando pasa algo así suelen ser fugas de memoria, acceso a memoria sin inicializar y/o recursos que no existen.

El .NET tiene un bug serio que hace que a veces las aplicaciones se cierren sin lanzar ninguna excepción (bueno, sí que las lanzan, pero se gestionan de forma oculta y la aplicación simplemente se cierra), aunque lo más común es que te salte la ventanita de la excepción no controlada (es una cosa que deberías mirar: si el usuario ve o no ve dicha ventana).

Y son tantas las cosas que pueden fallar (incluso en .NET)... ¿Usas hilos? ¿Sockets? ¿Alguna DLL de terceros? ...


6
C# / Re:Ejecutar procesos en otra maquina remotamente
« en: Jueves 15 de Marzo de 2012, 10:27 »
bueno, suponiendo que se puede "esconder" un programa en ejecucion, osea que sea visible solo de la ventana de procesos, crear un timer en unos 30 segs, y revisar si tal proceso esta activo y si no iniciarlo, recuerdo hacer eso que era algo como

un bool que revisaba si existia el proceso
private bool existe()
{
Foreach (Process p in pr)
{
if (p.Name == nombreprocesoquedeseasmantenerabierto)
   return true;
}
return false;
}

entonces en el metodo del timer
if(existe == false)
   Process.Start("direccion del proceso necesario")

aunque no se si esto satisface todas tus necesidades

En ese caso, si el programa vigilante se cae, ya no puedes hacer nada. En el caso de un servicio (más o menos con tu código) y se cae por cualquier motivo, windows lo vuelve a levantar automáticamente.

7
C# / Re:Ejecutar procesos en otra maquina remotamente
« en: Martes 13 de Marzo de 2012, 21:51 »
Si esos ordenadores no están en un controlador de dominio y/o terminal server, veo difícil que un ordenador pueda ejecutar algo en otro.

Necesitas hacerte un servicio de windows, que correrá en cada ordenador en donde tenga que ejecutarse dicho programa crítico. Ese servicio debe monitorizar la ejecución del programa (por ejemplo obteniendo la lista de procesos y comprobando si está, o que el programa abra un socket con el servicio). Luego ese servicio se encargará de comunicar al servidor qué ha pasado con el programa en cuestión mediante, de nuevo, un socket.

Claro que el servicio también puede caerse... pero en ese caso le marcas que se reinicie solo en las propiedades del servicio y windows se encarga.

8
C# / Re:Como leer temperatura procesador ??
« en: Lunes 12 de Marzo de 2012, 10:22 »
Supongo que se podrá leer por WMI, pero no sé cómo.

La medida de la temperatura en un micro ha ido evolucionando a lo largo del tiempo. Primero llevaban las placas base un sensor justo debajo del zócalo, y luego AMD puso de moda que fuera el propio micro el que se leyera a sí mismo su propia temperatura.

En todos los casos supone acceder al hardware, y dependiendo del micro y de la edad del mismo se hace de una forma o de otra. En el caso de que sea la placa base la que mida la temperatura, tendríamos que acceder a los datos de la bios (ojo, a los datos, no a la bíos).

En el caso de un micro moderno, existen instrucciones en ensamblador para obtener dicho valor, y si no existen, se hace accediendo al "espacio de direcciones del micro", es decir, una dirección de memoria absoluta fuera de cualquier virtualización de memoria te daría el valor de la temperatura.

Bueno, en ambos casos, realmente el valor no, sino un número con el cual, aplicando una ecuación que es diferente para cada micro y manera de leerla, te daría el valor real de la temperatura.

Pero para todo eso es necesario acceder al anillo 0 y con instrucciones de modo privilegidado: en otras palabras, o te permite el WMI (que lo ignoro, y muchas veces lo que se lea ahí suele ser bastante impreciso) o te tienes que hacer un driver de dispostivo, que será diferente para cada combinación de procesador/placa base (Y es por eso por lo que cada fabricante de placas base te da un programa para mirar la temperatura y no suele haber uno que lo haga para cualquier micro/placa base, y si los hay, que los hay, en general si tienes la suerte de que hayan implementado el algoritmo y el driver de tu sistema, podrás ver la temperatura. En otro caso, ni siquiera puedes estar seguro de que el valor que te muestren sea cierto).

9
C/C++ / Re:Hola
« en: Martes 6 de Marzo de 2012, 14:49 »
Con bios.h no puedes hacer nada en Windows. Eso es para MSDOS.

En QNetwork tienes un montón de clases para trabajar con sockets, y para el puerto serie QT no tiene nada.

En windows, para abrir, leer y escribir en puertos serie se usa la función CreateFile, ReadFile y WriteFile. Mirate la documentación de la MSDN.


10
C# / Re:Verificar fecha Fin superior que fecha inicio
« en: Lunes 5 de Marzo de 2012, 17:18 »
Pues tan sencillo como comparar los valores de la propiedad "Value". Son objetos y ellos mismos saben compararse:

if(dateTimePickerMax.Value<dateTimerPickerMin.Value)
{
//etc
}

11
C++ Builder / Re: Ingresar una fecha
« en: Martes 12 de Julio de 2011, 17:44 »
Hay un componente que se llama TDateTimeEdit (o algo así, escribo de oído), que te permite eso mismo: editarla en forma de calendario desplegable y/o a mano y te la verifica y todo...

Edito: Acabo de mirarlo y se llama TDateTimePicker.

12
Visual C++ / Re: Errores de compilación
« en: Viernes 8 de Julio de 2011, 13:32 »
No entiendo bien qué quieres hacer, pero Visual Studio 2010 permite trabajar perfectamente con código no manejado sin problemas. Trae MFC y Win32 y aplicaciones de consola como ha traído de siempre. Tienes una pestaña de Win32 y otra de MFC en el asistente para un nuevo proyecto.

También puedes trabajar con QT incluso de forma "cuasi" integrada a no ser que pagues una licencia de QT (y entonces sí que puedes integrarlo todo).

Mira estas entradas de mi blog: http://geeks.ms/blogs/rfog/archive/tags ... fault.aspx

13
Visual C++ / Re: Como pasar codigo de consola a grafico??
« en: Miércoles 15 de Junio de 2011, 17:04 »
¿Y dónde están los textbox?

14
Visual C++ / Re: Variables globales visual studio 2005
« en: Miércoles 15 de Junio de 2011, 17:03 »
El método tradicional es hacer un getter/setter o ponerla en la zona pública. De cabeza (puede tener errores):

class Clase
{
private:
int m_privada;
public:
int GetPrivada(){return m_privada;}
void SetPrivada(int valor){m_privada=valor;}
int VariablePublica;
};


Clase miClase;
miClase.SetPrivada(3);
cout<<miClase.GetPrivada();
miClase.VariablePublica=4;
cout<<miClase.VariablePublica;

15
Visual C++ / Re: Errores de compilación
« en: Miércoles 8 de Junio de 2011, 22:07 »
Para aprender Win32 o MFC necesitas más de esos seis meses, y WindowsForms y C++/CLI no es la mejor opción porque el lenguaje se está quedando como lenguaje de nicho y sólo para interoperación con código antiguo...

Si quieres algo rápido tienes C#, que apenas te costará aprender, y desde C# podrás hacer interop por atributos con código en C y C++. Eso o te consigues una licencia de C++Builder, que es como el WindowsForms pero completamente nativo.

16
Visual C++ / Re: Errores de compilación
« en: Martes 7 de Junio de 2011, 21:36 »
Claro que puedes usar la DLL desde C++/CLI, pero tienes que tener en cuenta que son lenguajes diferentes y que necesitan una interoperabilidad, que debería venir explicada en el libro de Horton.

Los tipos nativos son intercambiables, pero las cadenas y las estructuras y punteros no. O bien usas interop por atributos (los corchetes puestos encima de las definiciones de los métodos) o bien por IJW, que consiste en simplemente usar los tipos y demás pero pinneándolos etc... No es sencillo.

Con la DLL te tendrían que haber dado un fichero LIB que deberías añadir al proyecto, a no ser que el CPP que te han dado use LoadLibrary() y use punteros a función, que luego serán usados desde otras clases como si fueran funciones normales.

Pues es a esas funciones a las que les tienes que aplicar el interop.

Lo más fácil es que te generes una DLL con una o varias clases en C++/CLI que envuelvan dichas funciones (ya sea mediante LoadLibrary o mediante el uso del .h y del lib), y entonces usar la nueva DLL en conjunto a la antigua ya como .NET puro y duro.

Que yo sepa no hay documentación en castellano sobre todo esto. Lo más cercano es mi blog, en el que trato alguna de estas cosas, pero no mucho: geeks.ms/blogs/rfog.

17
Visual C++ / Re: Inclusion de objeto en un namespace
« en: Martes 7 de Junio de 2011, 20:06 »
A lo mejor esto te aclara un poco las cosas:

http://geeks.ms/blogs/rfog/archive/2009 ... c-cli.aspx

18
Visual C++ / Re: Inclusion de objeto en un namespace
« en: Martes 7 de Junio de 2011, 17:58 »
Estás mezclando churras con merinas.

Estás intentando heredar una clase de WIndowsForms como si fuera MFC.

WindowsForms usa un lenguaje similar al C++ que se llama C++/CLI.

19
Visual C++ / Re: como calcular direccion de subred teniendo la ip y la mascar
« en: Martes 7 de Junio de 2011, 17:57 »
Este es un foro de C++

Para ver la subred, sólo tienes que fijarte en cuántos 255 tiene la máscara y ya está. Eso generalmente se hace con una unión de un unsigned long int y cuatro unsigned char.

20
Visual C++ / Re: Errores de compilación
« en: Martes 7 de Junio de 2011, 17:55 »
Todos los errores vienen porque el compilador no ve la definición de la clase, y por tanto no sabe qué es clsTimeOutTimer.

¿Incluiste el fichero cabecera adecuado?

Una cosa: una aplicación WindowsForms NO es C++, es C++/CLI que es un lenguaje diferente.

21
C/C++ / Re: senos y cosenos incorrectos
« en: Miércoles 4 de Mayo de 2011, 11:23 »
Las funciones trigonométricas de C trabajan en radianes, no en grados sexagesimales... Quizás sea eso.

22
Visual C++ / Re: Error en visual studio 2010 (c++)
« en: Martes 26 de Abril de 2011, 21:26 »
http://blogs.msdn.com/b/vcblog/archive/ ... 58277.aspx

La solución a todos los problemas de la última actualización.

23
Visual C++ / Re: Error en visual studio 2010 (c++)
« en: Martes 26 de Abril de 2011, 15:18 »
Cita de: "a343"
Lo desistale completamente, borre las carpetas esas, y lo volvi a instalar. Ya no da ningun problema. Debi de hacer esto desde un principio.

Y ahora cuando me salga una actualizacion de windows... ¿que hago? ¿actualizo o no? xD

La verdad es que no suelen cagarla así de mal casi nunca... Las empresas grandes (o más bien con departamento de IT potente), suelen tener ordenadores "cebo" en donde meten las actualizaciones y las prueban en un entorno controlado, y si pasan los controles entonces activan su servidor WSUS (creo que se llama así) y dejan pasar las actualizaciones a todas las demás máquinas.

En el caso de una empresa pequeña, y en la situación que nos ocupa, se podría tener una máquina virtual con un ordenador duplicando más o menos lo instalado en las reales, actualizar sólo la máquina virtual y recompilar desde ella el código de la empresa etc...

Lo que yo hago en donde trabajo, con un sólo ordenador de desarrollo (el mío), es instalar primero en casa (donde tengo más compiladores y más basuras varias), y si va bien en mis proyectos, luego actualizo los (poquísimos) ordenadores de la empresa, servidor incluído.

24
Visual C++ / Re: Error en visual studio 2010 (c++)
« en: Lunes 25 de Abril de 2011, 22:52 »
No tengo ni idea, pero prueba.

Cuando esté desinstalado, borra a mano las carpetas del SDK en Archivos de Programa.

25
Visual C++ / Re: Error en visual studio 2010 (c++)
« en: Lunes 25 de Abril de 2011, 10:03 »
¿Seguro que no te aparece ninguna de estas actualizaciones?

http://www.microsoft.com/technet/securi ... 1-025.mspx
http://support.microsoft.com/kb/2500212

Páginas: [1] 2 3 ... 7