• Viernes 8 de Noviembre de 2024, 14:05

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.


Temas - lilezek

Páginas: [1]
1
C/C++ / La memoria ram poco a poco se va consumiendo.
« en: Domingo 13 de Junio de 2010, 22:25 »
Buenos días a todos. Estoy haciendo una aplicación en c++, y esta aplicación embebe LUA y usa HGE. Mi aplicación consume , cada aproximadamente 5 segundos, 4 kb más. No es mucho, pero es. Y si aumento mi código de LUA esto empezará a chupar más y más rápido. Entonces, me gustaría que me dieran pautas para revisar mi código. Qué debería comprobar, si hay herramientas que me ayuden a comprobar que códigos comen más memoria ram.

Utilizo Visual Studio 2010 Ultimate, bajo windows xp. Saludos y gracias.

PD: Pondría vínculos a LUA y HGE pero no puedo  :mellow:

2
Otros CLR / Problema con el constructor de una estructura.
« en: Jueves 24 de Septiembre de 2009, 17:11 »
Hola. Tengo este código en visual c++:

Código: C++
  1.  
  2.  
  3.  
  4.  
  5. // Meto 9 espacios para que la línea
  6. // 18 coincida con mi línea (ya que no puse el principio del archivo).
  7.  
  8.  
  9.  
  10. struct Calc  
  11.     {
  12.     private:
  13.         Ezek::Int64 __vbuffer1;
  14.         Ezek::Int64 __vbuffer2;
  15.         bool __vbuffer;
  16.         gcroot<TextBox^> TBarraDeTexto;
  17.     public: 
  18.         Calc(TextBox^ e)
  19.         {
  20.             TBarraDeTexto = e;
  21.             __vbuffer = true;
  22.             __vbuffer1 = Ezek::Int64(0);
  23.             __vbuffer2 = Ezek::Int64(0);
  24.             MaxNum = Ezek::Int64(0);
  25.         };
  26.         ~Calc()
  27.         {
  28.             TBarraDeTexto.~gcroot();
  29.         }
  30.         Ezek::Int64 MaxNum;
  31.         void RefrescarBDT(TextBox^ TBarraDeTexto)
  32.         {
  33.             TBarraDeTexto->Text = vbuffer().ToString() + ",";
  34.         }
  35.         void InsertarNumero(int Numero, TextBox^ TBarraDeTexto)
  36.         {
  37.             if ((Ezek::Int64)NDigitos(vbuffer()) + 1 >= MaxNum)
  38.             {
  39.                 // sonido de error
  40.                 return;
  41.             }
  42.             vbuffer() = vbuffer() * 10 + Numero;
  43.             RefrescarBDT(TBarraDeTexto);
  44.         }
  45.         void QuitarNumero(TextBox^ TBarraDeTexto)
  46.         {
  47.             vbuffer() = vbuffer() / 10;
  48.             RefrescarBDT(TBarraDeTexto);
  49.         }
  50.         void QuitarTodosLosNumeros(TextBox^ TBarraDeTexto)
  51.         {
  52.             vbuffer() = 0;
  53.             RefrescarBDT(TBarraDeTexto);
  54.         }
  55.         void CambiarBuffer()
  56.         {
  57.             __vbuffer = (!__vbuffer);
  58.         }
  59.         Ezek::Int64 vbuffer()
  60.         {
  61.             if (__vbuffer) return __vbuffer1;
  62.             else return __vbuffer2;
  63.         }
  64.         };
  65.  

Ese código está dentro de mi propio namespace Ezek junto muchos otros componentes, pero sólo este me da error (ni siquiera el me da warning los otros componentes, así que el problema está en este). Exactamente, el error reside en la línea del constructor Calc(TextBox^ e):

Código: Text
  1. 1>------ Build started: Project: Proyecto 1 (Calculadora Simple), Configuration: Debug Win32 ------
  2. 1>Compiling...
  3. 1>Proyecto 1 (Calculadora Simple).cpp
  4. 1>c:documents and settingsusuariomis documentosvisual studio 2008projectsproyecto 1 (calculadora simple)proyecto 1 (calculadora simple)calculadora(projecto1).h(18) : error C2512: 'Ezek::Int64' : no appropriate default constructor available
  5. 1>c:documents and settingsusuariomis documentosvisual studio 2008projectsproyecto 1 (calculadora simple)proyecto 1 (calculadora simple)calculadora(projecto1).h(18) : error C2512: 'Ezek::Int64' : no appropriate default constructor available
  6. 1>c:documents and settingsusuariomis documentosvisual studio 2008projectsproyecto 1 (calculadora simple)proyecto 1 (calculadora simple)calculadora(projecto1).h(18) : error C2512: 'Ezek::Int64' : no appropriate default constructor available
  7. 1>Build log was saved at "file://c:Documents and SettingsUsuarioMis documentosVisual Studio 2008ProjectsProyecto 1 (Calculadora Simple)Proyecto 1 (Calculadora Simple)DebugBuildLog.htm"
  8. 1>Proyecto 1 (Calculadora Simple) - 3 error(s), 0 warning(s)
  9. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
  10.  

3
Otros CLR / Problemas con arrays
« en: Domingo 20 de Septiembre de 2009, 19:33 »
Buenos días. Tengo un problema con c++. Utilizo visual c++ y me gustaría conseguir una lista de todas las ventanas (HWND) que existen. Para ello, he creado esta función:

Código: C++
  1.     array<HWND>^ GetAllWindows()
  2.     {
  3.         array<HWND>^ RetResult = gcnew array<HWND>(1000);
  4.         HWND temporary = WIN32::GetTopWindow(void);
  5.         while temporary != 0 do
  6.         {
  7.             RetResult<RetResult->Length + 1> = temporary
  8.             temporary = WIN32::GetNextWindow();
  9.         }
  10.     }
  11.  

No funciona. Sobre c++ se muuuy poquito, y cuando veo las arrays hasta me mareo. ¿Alguien me puede dar una pequeña explicación de lo qué está mal?

Páginas: [1]