windows - 在 Windows 操作系统上将 SDL 与 FreePascal 链接(使用 Lazarus)

标签 windows sdl sdl-2 freepascal lazarus

好的,对于我正在开发的游戏,我的程序员决定将 FreePascal 与 SDL 结合使用,并向我展示了它的工作原理(尽管他使用的是 Linux 操作系统而我没有)。我尝试了多种将 SDL2.dll 和附带的头文件链接到 Lazarus 项目的方法,但它们似乎都不起作用。到目前为止,这是我尝试过的:

  1. 将 .dll 添加到我正在处理的项目的项目文件夹中
  2. Adding the .dlls to the FPC "Units" folder in my OS
  3. Adding the .dlls path in the project options window
  4. 直接在fpc.cfg文件中添加.dlls文件夹:

searchpath for libraries

-FlC:\lazarus\fpc\$FPCVERSION/lib

-Fl/lib;/usr/lib

-FlC:\lazarus\fpc\$FPCVERSION/lib/$FPCTARGET

-FlC:\lazarus\fpc\$FPCVERSION/lib/$FPCTARGET/SDL2

searchpath for tools

-FDC:\lazarus\fpc\$FPCVERSION/bin/$FPCTARGET

所以我也把它们放在 Uses 位置:

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}

cthreads,

{$ENDIF}{$ENDIF}

Classes, sysutils, SDL2, SDL2_ttf

基本上,我如何将 SDL2 库链接到 Windows 8 操作系统上的 Lazarus?

最佳答案

我假设目标是 Windows 操作系统,否则 DLL 将无法运行。将 SDL.dll 放在应用程序目录中,这是 Windows 查找任何 DLL 的第一个地方。

将函数定义为

function name(params: types); cdecl; external 'SDL.dll';

cdecl 因参数传递给函数的方式而异。 希望这能让您入门。

关于windows - 在 Windows 操作系统上将 SDL 与 FreePascal 链接(使用 Lazarus),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359681/

相关文章:

c++ - 为什么要使用 glTranslatef?为什么不直接更改渲染坐标?

gcc - 无法打开源文件 "begin_code.h"( "SDL2/SDL.h"的依赖项)

c++ - 按下空间时如何获得更平滑的旋转

java - 有没有办法在 Windows 下使用 java.util.Preferences 而无需使用注册表作为后端?

c# - 为用户禁用屏幕保护程序

php - 我想使用 at 命令和 php 从我的 win 8 操作系统发送短信

windows - 构建调度应用程序需要研究哪些 Windows API?

c - SDL Surfaces 数组在一定次数的重新分配后会更改内容

c++ - SDL 中的每像素 2D 圆形碰撞检测

sdl - 我应该如何使用 SDL2 在 Wayland 上支持 GNOME?