¿Usar la biblioteca compartida de 32 bits de la aplicación de 64 bits?

He creado una biblioteca compartida de Linux de 32 bits (.so) para mis envoltorios de renderizado, pero me he topado con una pared cuando pensé que solo puedo usarlos a través de aplicaciones de 32 bits .............. ......

Así es como se ve mi código:

Rendiface.h:

<code>//Basic renderer interface
struct Renderer
{
    int type;
    ...other things
};
</code>

GLRend.c:

<code>#include "RendIFace.h"
struct Renderer* GLRendererCreate(int width,int height,int bytesPerPixel)
{
    struct Renderer* rend = (struct Renderer*)malloc(sizeof(Renderer));

    rend->type = GLR;
    ..other things

    return rend;
}
</code>

SDLRend.c:

<code>#include "RendIFace.h"
struct Renderer* SDLRendererCreate(int width,int height,int bytesPerPixel)
{
    struct Renderer* rend = (struct Renderer*)malloc(sizeof(Renderer));

    rend->type = SDLR;
    ..other things

    return rend;
}
</code>

Y compilo tanto como bibliotecas compartidas de 32 bits (.so) y las cargo a través de la aplicación principal ...

Pero ahora hay un gran problema. Mis bibliotecas son todas de 32 bits y devuelven punteros de 32 bits, lo que significa que no puedo usarlas a través de una aplicación de 64 bits sin reconstruir toda la base de códigos de la biblioteca (!!!).

Así que me gustaría preguntarle a las personas más experimentadas: ¿Cómo manejo este problema? ¿Es posible usar una sola biblioteca compartida para ambas arquitecturas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta