Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/03/2013, 13:34
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: crear mi propias funciones....c++

Ok, pense que querias reinventar la rueda al hacer una funcion que ejecuta otra ya inventada :)

Lo de los h, supongamos que tienes una funcion que tienes previsto usar en mas de un proyecto, por lo que quieres sacarla fuera de tu proyecto actual para no tener que recopiarla para cada nuevo proyecto ok? Primero haces la cabecera con el prototipo (de esta funcion y de todas las que quieras), se llamara stringaux.h

Código:
//stringaux.h
#ifndef STRINGAUX
#define STRINGAUX

/**
Esta es mi libreria de funciones StringAuxiliar
*/


#include <string>
using namespace std;

char *straux_string2char(string );

#endif
Ahora creas el archivo de codigo para la funcion, que llamaremos por ejemplo stringaux.cpp (puedes llamarlo como quieras pero si lo llamas como la cabecera ya tienes una referencia):

Código:
#include "stringaux.h"

const char *straux_string2char(string str) {
	return str.c_str();
}
Si esto lo compilas por si solo obtendras un error al no haber indicado funcion de entrada. Si quieres usarlo sin libreria tendras que añadir ambos archivos a la compilacion de tus proyectos donde quieras usar la funcion y incluir la cabecera para el prototipo. Si quieres crear una libreria estatica obtendras un archivo libreria, y para usarlo en ptros proyectos tendras que usar la cabecera y el archivo libreria.

Supongamos que quieres hacer una aplicacion que usa esa funcion y no has creado la libreria estatica. Creas los archivos de la aplicacion, en el principal incluyes la cabecera 'stringaux.h' y añades 'stringaux.cpp' a la compilacion del proyecto. Si no incluyes la cabecera obtendras un error de funcion no definida, y si incluyes la cabecera pero no añades el cpp a la compilacion obtendras un error de funcion no disponible.

Supongamos ahora que has creado la libreria estatica con tu funcion, en el proyecto de la libreria tienes stringaux.h, stringaux.cpp y stringaux.lib o stringaux.a (es el archivo libreria); para distribuir tu libreria solo tienes que usar el *.h y el *.lib (o *.a), de forma que en el otro proyecto incluiras la cabecera y linkaras la compilacion con el archivo libreria.

Saludos
vosk