Drumpi
26/01/2009, 14:05
Hola de nuevo:
Mientras aprendo a hacer algo con los módulos, voy a seguir aprendiendo con otras cosillas algo más sencillas. Hoy tocan las librerías de enlace dinámico... las dll en windows, vamos.
Bien, tengo este código:
#include <fxdll.h>
static int suma (INSTANCE * my, int * params) {
int dato_a_devolver;
dato_a_devolver=params[0]+params[1];
return(dato_a_devolver);
}
static int resta (INSTANCE * my, int * params) {
int dato_a_devolver;
dato_a_devolver=params[0]-params[1];
return(dato_a_devolver);
}
FENIX_MainDLL RegisterFunctions (COMMON_PARAMS)
{
FENIX_DLLImport
FENIX_export ("MI_SUMA", "II", TYPE_DWORD, suma);
FENIX_export ("MI_RESTA", "II", TYPE_DWORD, resta);
}
Consiste en una simple dll para Fenix, en plan "hola mundo".
Bien, usando el SDK oficial (dev-cpp y yo ya nos conocimos hace tiempo), he creado un proyecto tipo dll para windows, he añadido a los directorios la carpeta donde estan los headers de Fenix, compile y ¡viola! una dll perfectamente funcional en windows.
Pasemos a la negrita: proyecto, dll para gp2x (.so), codigo, añadimos los mismos .h, compilar, probamos la .so... vuelta al menu.
¿Es cosa del código? ¿O es que necesito otros .h (que no se donde andan, ni con los fuentes de puck :S)? ¿o es que hago algo mal en el proceso?
Si alguien me puede hechar una mano, por favor...
PD: ¿es necesario que los datos devueltos sean de tipo static o son manias del que escribió el tutorial?
Mientras aprendo a hacer algo con los módulos, voy a seguir aprendiendo con otras cosillas algo más sencillas. Hoy tocan las librerías de enlace dinámico... las dll en windows, vamos.
Bien, tengo este código:
#include <fxdll.h>
static int suma (INSTANCE * my, int * params) {
int dato_a_devolver;
dato_a_devolver=params[0]+params[1];
return(dato_a_devolver);
}
static int resta (INSTANCE * my, int * params) {
int dato_a_devolver;
dato_a_devolver=params[0]-params[1];
return(dato_a_devolver);
}
FENIX_MainDLL RegisterFunctions (COMMON_PARAMS)
{
FENIX_DLLImport
FENIX_export ("MI_SUMA", "II", TYPE_DWORD, suma);
FENIX_export ("MI_RESTA", "II", TYPE_DWORD, resta);
}
Consiste en una simple dll para Fenix, en plan "hola mundo".
Bien, usando el SDK oficial (dev-cpp y yo ya nos conocimos hace tiempo), he creado un proyecto tipo dll para windows, he añadido a los directorios la carpeta donde estan los headers de Fenix, compile y ¡viola! una dll perfectamente funcional en windows.
Pasemos a la negrita: proyecto, dll para gp2x (.so), codigo, añadimos los mismos .h, compilar, probamos la .so... vuelta al menu.
¿Es cosa del código? ¿O es que necesito otros .h (que no se donde andan, ni con los fuentes de puck :S)? ¿o es que hago algo mal en el proceso?
Si alguien me puede hechar una mano, por favor...
PD: ¿es necesario que los datos devueltos sean de tipo static o son manias del que escribió el tutorial?