elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Top 20 herramientas Hacking más populares de 2020


  Mostrar Temas
Páginas: [1] 2 3
1  Programación / Programación C/C++ / Aclaracion o explicacion en: 31 Agosto 2021, 16:19 pm
Hola, molesto de nuevo ya que recien empiezo con c++/cli.......

Podrían Uds aclarame o explicarme más fehacientemente que significa esto que publico más abajo??....yo le doy una interpretación, pero quiero asegurarme bien ello....

Agradezco, un beso grande....



"El símbolo de intercalación (“^ ") indica que la variable declarada es un identificador para un objeto administrado de C++/CLI."
2  Foros Generales / Dudas Generales / Error C++ Raro en: 29 Agosto 2021, 23:44 pm
Hola, implemento una interfaz que sume, pero da error que dice que se solucionaria compilando de nuevo....

Dejo ERROR  codigo....Agradezco lo que puedan audarme, es para clases para mis alumnos...


1>.\AssemblyInfo.cpp(1) : fatal error C1859: Error inesperado 'Debug\OperacionesArits.pch' del encabezado precompilado; puede que el problema se resuelva si vuelve a ejecutar el compilador
1>OperacionesArits.cpp
1>.\OperacionesArits.cpp(3) : fatal error C1859: Error inesperado 'Debug\OperacionesArits.pch' del encabezado precompilado; puede que el problema se resuelva si vuelve a ejecutar el compilador
1>Generando código...
1>El registro de compilación se guardó en el "file://c:\Users\Guillermo\Documents\Visual Studio 2008\Projects\OperacionesArits\OperacionesArits\Debug\BuildLog.htm"
1>OperacionesArits - 2 errores, 0 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========


Codigo

Código:
#pragma endregion
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
int Num1, Num2, Res;
Num1 = System::Convert::ToInt32(textPrim -> Text);
Num2 = System::Convert::ToInt32(textSeg -> Text);
Res = Num1 + Num2;
textRes->Text = System::Convert::ToString(Res);
}
};

3  Programación / Programación C/C++ / Redireccionar a otro winform C++/CLI Error Constructor en: 26 Agosto 2021, 05:14 am

Hola, molesto nuevamente........Me sale este error cuando quiero programar el segundo Boton para redireccionar o llamar a oro Form.....seria el unico  a saldria....


Error   1   error C3673: 'Cualquiera::Form2' : la clase no tiene un constructor de copia

Código:
#pragma once
#include "Form2.h"


namespace Cualquiera {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

 
/// <summary>
/// Resumen de Form1
///
/// ADVERTENCIA: si cambia el nombre de esta clase, deberá cambiar la
///          propiedad 'Nombre de archivos de recursos' de la herramienta de compilación de recursos administrados
///          asociada con todos los archivos .resx de los que depende esta clase. De lo contrario,
///          los diseñadores no podrán interactuar correctamente con los
///          recursos adaptados asociados con este formulario.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: agregar código de constructor aquí
//
}

protected:
/// <summary>
/// Limpiar los recursos que se estén utilizando.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^  Guardar1;
protected:

protected:


private: System::Windows::Forms::Label^  label1;
private: System::Windows::Forms::Label^  label2;
private: System::Windows::Forms::Button^  button2;

private:
/// <summary>
/// Variable del diseñador requerida.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Método necesario para admitir el Diseñador. No se puede modificar
/// el contenido del método con el editor de código.
/// </summary>
void InitializeComponent(void)
{
this->Guardar1 = (gcnew System::Windows::Forms::Button());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->button2 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// Guardar1
//
this->Guardar1->BackColor = System::Drawing::SystemColors::ActiveCaption;
this->Guardar1->ForeColor = System::Drawing::SystemColors::ControlText;
this->Guardar1->Location = System::Drawing::Point(95, 73);
this->Guardar1->Name = L"Guardar1";
this->Guardar1->Size = System::Drawing::Size(75, 23);
this->Guardar1->TabIndex = 0;
this->Guardar1->Text = L"Click Aquí";
this->Guardar1->UseVisualStyleBackColor = false;
this->Guardar1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// label1
//
this->label1->Enabled = false;
this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label1->ForeColor = System::Drawing::SystemColors::ControlText;
this->label1->Location = System::Drawing::Point(60, 117);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(157, 23);
this->label1->TabIndex = 0;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Font = (gcnew System::Drawing::Font(L"Open Sans Semibold", 8.25F, static_cast<System::Drawing::FontStyle>((System::Drawing::FontStyle::Bold | System::Drawing::FontStyle::Italic)),
System::Drawing::GraphicsUnit::Point, static_cast<System::Byte>(0)));
this->label2->Location = System::Drawing::Point(61, 33);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(167, 15);
this->label2->TabIndex = 1;
this->label2->Text = L"Por favor, Haga Click en Botón";
//
// button2
//
this->button2->BackColor = System::Drawing::SystemColors::ActiveCaption;
this->button2->ForeColor = System::Drawing::SystemColors::ControlText;
this->button2->Location = System::Drawing::Point(95, 193);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 2;
this->button2->Text = L"Continuar";
this->button2->UseVisualStyleBackColor = false;
this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(284, 262);
this->Controls->Add(this->button2);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->Guardar1);
this->Name = L"Form1";
this->Text = L"Label Hola Mundo";
this->ResumeLayout(false);
this->PerformLayout();

}

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
{
  label1->Text = "Hola Mundo";
}

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {


Form2^ frm2 = gcnew Form2(this);
         frm2->Show();
         this->Hide();
}
};
}


Agradezco cualquier ayuda....
4  Programación / Programación C/C++ / Redireccionar a otro winform C++/CLI en: 25 Agosto 2021, 22:15 pm
Hola, cómo les va??

Espero que bien...

Hoy me comunico para consultarles si sabrían orientarme en cómo Redirecciono a otro Form (Form2), desde un Formulario Principal (Form 1 Windows form)??, después de hacer click en un Botón??

Soy nuevo con esto del C++/CLI....


Fragmento de código:
Código
  1. private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
  2. Form1:: :://lo que quise hacer yo
  3. }
  4. };
  5. }

Mil millones de gracias...


MOD: El código debe ir entre etiquetas de Código GeSHi
5  Programación / Programación C/C++ / Error C++ en: 22 Agosto 2021, 23:40 pm
Hola, amigos, cómo les va??

Me comunico para consultarles lo siguiente:

Estoy Trabajando en un Proyecto de winform en C++

Quiero un "Hola Mundo" al apretar un Botón, que aparezca en un Label o MessageShowBox...


Ese es el codigo;
Código
  1. #pragma once
  2.  
  3.  
  4. namespace Cualquiera {
  5.  
  6. using namespace System;
  7. using namespace System::ComponentModel;
  8. using namespace System::Collections;
  9. using namespace System::Windows::Forms;
  10. using namespace System::Data;
  11. using namespace System::Drawing;
  12.  
  13. /// <summary>
  14. /// Resumen de Form1
  15. ///
  16. /// ADVERTENCIA: si cambia el nombre de esta clase, deberá cambiar la
  17. ///          propiedad 'Nombre de archivos de recursos' de la herramienta de compilación de recursos administrados
  18. ///          asociada con todos los archivos .resx de los que depende esta clase. De lo contrario,
  19. ///          los diseñadores no podrán interactuar correctamente con los
  20. ///          recursos adaptados asociados con este formulario.
  21. /// </summary>
  22. public ref class Form1 : public System::Windows::Forms::Form;
  23. {
  24. public:
  25. Form1(void)
  26. {
  27. InitializeComponent();
  28. //
  29. //TODO: agregar código de constructor aquí
  30. //
  31. }
  32.  
  33. protected:
  34. /// <summary>
  35. /// Limpiar los recursos que se estén utilizando.
  36. /// </summary>
  37. ~Form1()
  38. {
  39. if (components)
  40. {
  41. delete components;
  42. }
  43. }
  44. private: System::Windows::Forms::Button^  Guardar1;
  45. protected:
  46.  
  47. protected:
  48. private: System::Windows::Forms::TextBox^  textBox1;
  49. private: System::Windows::Forms::Label^  label1;
  50.  
  51. private:
  52. /// <summary>
  53. /// Variable del diseñador requerida.
  54. /// </summary>
  55. System::ComponentModel::Container ^components;
  56.  
  57. #pragma region Windows Form Designer generated code
  58. /// <summary>
  59. /// Método necesario para admitir el Diseñador. No se puede modificar
  60. /// el contenido del método con el editor de código.
  61. /// </summary>
  62. void InitializeComponent(void)
  63. {
  64. this->Guardar1 = (gcnew System::Windows::Forms::Button());
  65. this->textBox1 = (gcnew System::Windows::Forms::TextBox());
  66. this->label1 = (gcnew System::Windows::Forms::Label());
  67. this->SuspendLayout();
  68. //
  69. // Guardar1
  70. //
  71. this->Guardar1->BackColor = System::Drawing::SystemColors::ActiveCaption;
  72. this->Guardar1->ForeColor = System::Drawing::SystemColors::HotTrack;
  73. this->Guardar1->Location = System::Drawing::Point(102, 145);
  74. this->Guardar1->Name = L"Guardar1";
  75. this->Guardar1->Size = System::Drawing::Size(75, 23);
  76. this->Guardar1->TabIndex = 0;
  77. this->Guardar1->Text = L"Guardar";
  78. this->Guardar1->UseVisualStyleBackColor = false;
  79. this->Guardar1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
  80. //
  81. // textBox1
  82. //
  83. this->textBox1->Location = System::Drawing::Point(91, 55);
  84. this->textBox1->Name = L"textBox1";
  85. this->textBox1->Size = System::Drawing::Size(100, 20);
  86. this->textBox1->TabIndex = 1;
  87. this->textBox1->TextChanged += gcnew System::EventHandler(this, &Form1::textBox1_TextChanged);
  88. //
  89.  
  90. // Form1
  91. //
  92. this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
  93. this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
  94. this->ClientSize = System::Drawing::Size(284, 262);
  95. this->Controls->Add(this->label1);
  96. this->Controls->Add(this->textBox1);
  97. this->Controls->Add(this->Guardar1);
  98. this->Name = L"Form1";
  99. this->Text = L"Form1";
  100. this->ResumeLayout(false);
  101. this->PerformLayout();
  102.  
  103. }
  104.  
  105. private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
  106. {
  107. label1.Text = "Hola Mundo";
  108. }
  109. private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
  110. }
  111.  
  112. }
  113.  

Me tira estos 3 Errores, como muestra lo que les adjunto...
Código:
Error C2143: error de sintaxis: falta"," delante de ";"
Error C2143: error de sintaxis: falta";" delante de 'using'
Error C2228: el operando izquierdo de ".Text" debe tener class/sruct/union    (es un Label)

Sabrían resolver ese entuerto??


Desde ya, les agradezco cualquier ayuda......

MOD: El código debe ir entre etiquetas de Código GeSHi
6  Programación / .NET (C#, VB.NET, ASP) / como hacer referencia cruzada para acomodar datos en columnas asp.net c# en: 4 Noviembre 2016, 15:47 pm
Hola, como les va?.....los molesto para saber si me pueden decir como haria una referencia cruzada para solucionar lo sig:

- debo llenar una Grid con las notas de un alumno Horizontalmente, en Nota1, Nota2, Nota3, Trim1, Nota 4, Nota 5, Nota6, Trim2, Nota7, Nota8, Nota9, Trim3.....

En la Tabla Notas, estan verticalmente y por Fecha..............

Dejo codigo y Captura de Pantalla de Grid para Graficar.....

Agradezco lo que me puedan aporten......Abrazos.....

Código
  1. public List<AsistenciaEntity> getAlMat(int Alumno)
  2.        {
  3.            try
  4.            {
  5.                connection.Open();
  6.                command.Parameters.AddWithValue("@Alum", Alumno);
  7.  
  8.                command.CommandText = @"SELECT B.Id_Alumno, B.Nombre, B.Apellido, B.Dni, D.Id_Materia, D.Nombre AS NombreMateria, A.Id_Turno, N.Id_Nota, N.Nota, N.Trimestre
  9.                                        FROM                                    
  10.                                    MateriaPorAlumno AS A,
  11.                                    Alumno AS B,
  12.                                    TurnoMateria AS C,
  13.                                    Materias AS D,
  14.                                        Notas AS N                                      
  15.                                        WHERE
  16.                                        A.Id_Alumno = B.Id_Alumno AND
  17.                                    C.Id_Turno = A.Id_Turno AND
  18.                                    D.Id_Materia = C.Id_Materia AND
  19.                                        N.Id_MateriaPorAlumno = A.Id AND                                                                        
  20.                                        B.Id_Alumno = @Alum Order By N.[Trimestre] Asc";
  21.  
  22.  
  23.                OleDbDataReader lector = command.ExecuteReader();
  24.           try
  25.            {  
  26.                List<AsistenciaEntity> listAsistencia = new List<AsistenciaEntity>();
  27.                while (lector.Read())
  28.                {
  29.                    AsistenciaEntity asistencia = new AsistenciaEntity();
  30.                    asistencia.Turno = new TurnoEntity();
  31.                    asistencia.Turno.Materia = new MateriaEntity();
  32.                    asistencia.Turno.Materia.Id_Materia = Convert.ToInt32(lector["Id_Materia"].ToString());
  33.                    asistencia.Turno.Materia.Nombre = lector["NombreMateria"].ToString();
  34.  
  35.                    asistencia.Alumno = new AlumnoEntity();
  36.                    asistencia.Alumno.Id_Alumno = Convert.ToInt32(lector["Id_Alumno"].ToString());
  37.                    asistencia.Alumno.Nombre = lector["Nombre"].ToString();
  38.                    asistencia.Alumno.Apellido = lector["Apellido"].ToString();
  39.                    asistencia.Alumno.Dni = Convert.ToInt32(lector["Dni"].ToString());
  40.  
  41.                    asistencia.MateriaPorAlumno = new MateriaPorAlumnoEntity();
  42.                    asistencia.MateriaPorAlumno.Turno = new TurnoEntity();
  43.                    asistencia.MateriaPorAlumno.Turno.Id_Turno = Convert.ToInt32(lector["Id_Turno"].ToString());
  44.  
  45.                    asistencia.Nota = new NotaEntity();
  46.                    asistencia.Nota.Id_Nota = Convert.ToInt32(lector["Id_Nota"].ToString());
  47.                    asistencia.Nota.Nota = Convert.ToInt32(lector["Nota"].ToString());
  48.                    asistencia.Nota.Trimestre = Convert.ToInt32(lector["Trimestre"].ToString());
  49.  
  50.                    listAsistencia.Add(asistencia);
  51.  
  52.                }
  53.                return listAsistencia;
  54.            }
  55.            catch (Exception ex)
  56.            {
  57.                throw ex;
  58.            }




Mod: Esto va en .net, movido. Imagen ajustada a las reglas del foro.
7  Programación / Desarrollo Web / Error_3_No se puede encontrar el archivo de metadatos 'C:\Users\Guillermo\Deskto en: 5 Octubre 2016, 23:21 pm
Hola, como les va?, consulto:

compilo y me sale este error:

Error_3_No se puede encontrar el archivo de metadatos 'C:\Users\Guillermo\Desktop\Cenma215(Willy) - 2\Negocio\bin\Debug\Negocio.dll'_Presentacion

Alguien sabe por que se da y como se soluciona??

Me podrian ayudar con esto??????

Gracias, saludos....
8  Programación / .NET (C#, VB.NET, ASP) / Consulta en: 28 Junio 2016, 03:40 am
Hola, como les va, consulto sobre lo sig:

1°) Debo llenar una Grilla en la cual no se como llenar columna Materia......por un lado....

2°)de esa misma Grilla, debo calcular el total de Presentes y Llegadas tarde, y calcular su porcentaje

si alguien sabe como contruir la query para llenar la Grilla tambien con Materia, dejo codigo que estoy usando y Captura de pantalla para graficar bien lo que se quiere lograr......(donde se aprecia que Materia no llena)..........

-- Dejo codigo calculador de totales que estoy usando y no me funciona......(y Deberia, tambien porcentuar)(pido si saben esto, tambien)

Desde ya, mil millones de Gracias, abrazos electronicos.....disculpen las molestias, (estoy termininando mi Tesis)


Código
  1. public List<AsistenciaEntity> getAll(int Alumno)
  2.        {
  3.            try
  4.            {
  5.                connection.Open();
  6.                command.Parameters.AddWithValue("@Alum", Alumno);
  7.  
  8.                command.CommandText = @"SELECT A.Id_Asistencia, A.Fecha, A.Asistencia, A.Llegadas_Tarde, A.Observaciones,
  9.                                    Alum.Id_Alumno, Alum.Nombre, Alum.Apellido, Alum.Dni
  10.                                    FROM Asistencias A
  11.                                    INNER JOIN Alumno Alum ON A.Id_Alumno = Alum.Id_Alumno
  12.                                    INNER JOIN TurnoMateria TM ON A.Id_Turno = TM.Id_Turno
  13.                                    WHERE Alum.Id_Alumno = @Alum";
  14.  
  15.                OleDbDataReader lector = command.ExecuteReader();
  16.  
  17.                List<AsistenciaEntity> listAsistencia = new List<AsistenciaEntity>();
  18.                while (lector.Read())
  19.                {
  20.                    AsistenciaEntity asistencia = new AsistenciaEntity();
  21.                    if (lector["Id_Asistencia"] != null)
  22.                        asistencia.Id_Asistencia = Convert.ToInt32(lector["Id_Asistencia"].ToString());
  23.                    if (lector["Fecha"] != null)
  24.                        asistencia.Fecha = Convert.ToDateTime(lector["Fecha"].ToString());
  25.                    if (lector["Asistencia"] != null)
  26.                        asistencia.Asistencia = Convert.ToBoolean(lector["Asistencia"].ToString());
  27.                    if (lector["Llegadas_Tarde"] != null)
  28.                        asistencia.Llegadas_Tarde = Convert.ToBoolean(lector["Llegadas_Tarde"].ToString());
  29.                    if (lector["Observaciones"] != null)
  30.                        asistencia.Observaciones = lector["Observaciones"].ToString();
  31.  
  32.                    asistencia.Materia = new MateriaEntity();
  33.                    asistencia.Materia.Id_Materia = Convert.ToInt32(lector["Id_Materia"].ToString());
  34.                    asistencia.Materia.Nombre = lector["Nombre"].ToString();
  35.  
  36.                    asistencia.Alumno = new AlumnoEntity();
  37.                    asistencia.Alumno.Id_Alumno = Convert.ToInt32(lector["Id_Alumno"].ToString());
  38.                    asistencia.Alumno.Nombre = lector["Nombre"].ToString();
  39.                    asistencia.Alumno.Apellido = lector["Apellido"].ToString();
  40.                    asistencia.Alumno.Dni = Convert.ToInt32(lector["Dni"].ToString());
  41.  
  42.                    listAsistencia.Add(asistencia);
  43.  
  44.                }
  45.                return listAsistencia;
  46.            }
  47.            catch (Exception ex)
  48.            {
  49.                throw ex;
  50.  
  51.  

Código
  1. ////Codigo Calculador solo de Totales, faltaria, tambien calcular porcentajes///
  2.  
  3. int totalPresentes = 0;
  4. int totalLlegadasTarde = 0;
  5.  
  6.        protected void btnCalcular_Click(object sender, EventArgs e)
  7.        {
  8.            foreach (GridViewRow row in GridConsultaAsistencias.Rows)
  9.            {
  10.                if (row.Cells[4].Text == "Presente")
  11.                {
  12.                    totalPresentes++;
  13.                }
  14.                foreach (GridViewRow rows in GridConsultaAsistencias.Rows)
  15.  
  16.                    if (rows.Cells[5].Text == "Si")
  17.                    {
  18.                        totalLlegadasTarde++;
  19.                    }
  20.  
  21.                TextTotAsist.Text = totalPresentes.ToString();
  22.                TextTotalLlegsTarde.Text = totalLlegadasTarde.ToString();
  23.            }
  24.        }
  25.  
  26.  

http://www.lawebdelprogramador.com/usr/174000/174873/5771cb7a46a45-MuestraResLlegsT.png

http://www.lawebdelprogramador.com/usr/174000/174873/5771cb8ca42dd-MuestraRelacsTablas.png
9  Programación / .NET (C#, VB.NET, ASP) / Validacion en Base de Datos.... en: 26 Mayo 2016, 23:13 pm
Hola, como les va, solo consulto si saben algun procedimiento para validar lo que se ingresa en una Tabla de Asistencias o Notas, a traves de una Grilla, si no es "Presente" o se coloque de nota un "12", se lea un label "Nota debe ser de 1 a 10", o "Asistencia debe ser "P""., "Error: Mal dato introducido"....etc......

El lenguaje es c#, en asp.net...

Disculpen las molestias, saludos, gracias....
10  Programación / .NET (C#, VB.NET, ASP) / Boton Modificar en: 27 Septiembre 2015, 21:10 pm
Hola, Sres., Uds. saben que con la solucion que me pasaron utros progarmadores:

"UPDATE Roles SET Descripcion = @desc WHERE Id = @id",

y con el codigo que obtuve en el foro c#:

Código
  1. string Cx = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
  2. using (OleDbConnection cnn = new OleDbConnection(Cx))
  3. {
  4. cnn.Open();
  5.  
  6. string sql = "update Rol Set Descripcion = '" + TextDescripcion.Text + "' Where Id_Rol = @id";
  7. OleDbCommand cmd = new OleDbCommand(sql, cnn);
  8. cmd.Parameters.AddWithValue("@id", TextId_Rol.Text);
  9.  
  10. cmd.ExecuteNonQuery();
  11. }


no me hace la funcion de Modificar solo el dato de Descripcion sin dejar de agregarme un nuevo Id de la Tabla Rol....Es decir, me hace la modificacion de Descripcion, pero me agrega otro Id_Rol...no me mantiene el mismo Id_Rol del TextId_Rol.Text......sabras que no funciona??, ......

El tema es asi:
Selecciono de un GridView y se cargan los TextBOxs en otro Webform, y alli boton Modificar.......habra otra forma de hacer un boton Modificar??

saludos, Abrazo, ya termino mi Tesis....
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines