// SharpEngine.h
namee SharpEngine {
cl SharpInst {
public:
// Insert Game Engine Code.
// Use this format
// static __declspec(dllexport) type function(parameters);
static __declspec(dllexport) void saveGame(object_as_param_here)
};
}
它说 'object_as_param_here' 我需要传递一个对象,以便函数可以访问包含级别,经验,健康等数据的对象。
这是在一个.dll 以及,我将如何使它,以便我可以使用这个与其他 code,仍然能够调用各种对象?
您可以使用指针作为参数,因为 DLL 在可执行内存中,所以如果你有结构的地址和原型,你可以直接从内存访问它。
假设你有这个简单的原型在你的可执行文件:
cl Player
{
public:
int money;
float life;
char name[16];
};
您可以将其复制到 DLL 的源代码,所以你有一个声明,让 DLL 知道如何访问成员时,给一个指针。
然后你可以export the function to the executable,给出示例原型:
static __declspec(dllexport) void saveGame(Player *data);
现在你可以从可执行文件调用 DLL 的函数,像这样:
Player *player = new Player;
player->money = 50000;
player->life = 100.0f;
saveGame(player);
或者,如果您不使用播放器的类作为可执行代码中的指针,您仍然可以传递其地址:
Player player;
player.money = 50000;
player.life = 100.0f;
saveGame(&player);
在你的saveGame
函数中,你可以访问结构作为指针:
data->money
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(30条)