Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


arrayList win32

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

arrayList win32

Notapor capitanAngustia el Mié Dic 12, 2007 8:10 am

Hola a todos,

Estoy trabajando con una aplicación de consola win32 con visual c++, con el visual studio 2005. Vengo de trabajar en C# y de utilizar cosas como los ArrayList. He leido que visual c++ también utiliza estructuras de datos como estas. Pero en mi proyecto cuando pongo:

using namespace System.Collections;

o simplemente
using namespace System;

me dice: no existe ningún espacio de nombres con este nombre

No se pueden usar arraylist??
no lo estoy haciendo bien??
Si no puedo usar ArrayList qué puedo utilizar y como???

Muchas gracias
capitanAngustia
Novato
Novato
 
Mensajes: 3
Registrado: Mar Dic 11, 2007 5:07 am

Re: arrayList win32

Notapor ivancp el Mié Dic 12, 2007 9:42 am

la directiva using (aun que es valida para c++) no importa clases del .NET.

Visual C++ tiene una clase llamada CArray (entre muchas otras) para realizar las operaciones que necesitas. Para poder tener la clase disponible para su uso necesitas la siguiente linea al inicio del archivo:

Código: Seleccionar todo
#include <afxtempl.h>


Ejemplo de uso para un array de cadenas.

Código: Seleccionar todo
   CArray<CString, CString &> arrayCadenas;   

   CString cadena1 = "Elemento 1";
   CString cadena2 = "Elemento 2";

   arrayCadenas.Add(cadena1);
   arrayCadenas.Add(cadena2);
   
   AfxMessageBox(arrayCadenas[0]);
ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm

#include <afxtempl.h>

Notapor capitanAngustia el Jue Dic 13, 2007 4:50 am

Cuando introduzco el código con el afxtempl.h me da un error al compilar que es:

Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

El proyecto es una aplicación de consola win32, no se si eso tendrá que ver.

Gracias
capitanAngustia
Novato
Novato
 
Mensajes: 3
Registrado: Mar Dic 11, 2007 5:07 am

Re: #include <afxtempl.h>

Notapor ivancp el Jue Dic 13, 2007 11:03 am

Si pu aplicacion es de consola entonces tienes utilizar las colecciones estandares del c++. Por que las clases que te indique son para proyectos MFC.

Un ejemplo usando vectores:

Código: Seleccionar todo
#include "stdafx.h"
#include <vector>
#include <string>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
   vector<string> arrayCadenas;   

   string cadena1 = "Elemento 1";
   string cadena2 = "Elemento 2";

   arrayCadenas.push_back(cadena1);
   arrayCadenas.push_back(cadena2);

   cout<<arrayCadenas[0];
   return 0;
}

ivancp
Programador Experimentado
Programador Experimentado
 
Mensajes: 371
Registrado: Jue Sep 06, 2007 12:57 pm


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados