【发布时间】:2012-07-07 18:20:36
【问题描述】:
如果这是一个愚蠢的问题,请原谅我,但我正在关注一本书,但它不起作用。 我有一个游戏引擎,它存在于一个 dll 中。它有几个外部函数可以在实际游戏应用程序中使用:
extern void game_preload();
这一切都很完美而且很花哨,但是当我去构建所有的东西时,我得到了一个错误:
Undefined reference to `game_preload()'
这是为什么?我怎样才能让它构建出 dll 以便我可以在应用程序中实现这些功能?
我正在关注的这本书叫做“高级 2D 游戏开发”,它没有提到有问题。
编辑:我读错了这本书,我应该制作一个静态库而不是动态库。但是请问有没有类似动态库的“extern”用法?
【问题讨论】:
-
在 DLL 中使用
__declspec(dllexport),在应用程序中使用__declspec(dllimport)? (__declspec(dllimport) void game_preload();)(它只适用于静态链接。) -
如果您按照书中关于设置 VC 项目的说明进行操作,那么您将创建一个 EXE 项目,而不是 DLL 项目。需要编写自己的 game_preload 函数,这就是您创建自定义游戏的方式。