レンダリング ラッパー用に単純な Linux 32 ビット共有ライブラリ (.so) を作成しましたが、32 ビット アプリケーションでしか使用できないと判断したときに壁にぶつかりました.............. ……
これは私のコードがどのように見えるかです:
RendIFace.h:
//Basic renderer interface
struct Renderer
{
int type;
...other things
};
GLRend.c:
#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;
}
SDLRend.c:
#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;
}
そして、両方を共有32ビットライブラリ(.so)としてコンパイルし、メインアプリケーションからロードします...
しかし今、大きな問題があります。私のライブラリはすべて 32 ビットであり、32 ビット ポインターを返します。つまり、すべてのライブラリ コード ベースを再構築しないと 64 ビット アプリケーションでそれらを使用することはできません (!!!)。
そこで、経験豊富な方にお聞きしたいのですが、この問題をどのように処理すればよいでしょうか? 両方のアーキテクチャで単一の共有ライブラリのみを使用することは可能ですか???