在Windows操作系统上,使用Lazarus将SDL与FreePascal链接

3
好的,我正在为一个游戏工作,我的程序员决定使用FreePascal和SDL,并向我展示了它的工作原理(虽然他正在使用Linux操作系统而我不是)。我已经尝试了多种方法将SDL2.dll和相应的头文件链接到Lazarus项目中,但似乎都没有起作用。以下是我迄今为止尝试过的方法:
  1. 将.dll文件添加到我正在使用的项目的项目文件夹中
  2. 将.dll文件添加到我操作系统中的FPC“Units”文件夹中
  3. 在项目选项窗口中添加.dll文件的路径
  4. 直接在fpc.cfg文件中添加.dll文件的文件夹:

库的搜索路径

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

-Fl/lib;/usr/lib

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

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

工具的搜索路径

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

所以我也在Uses位置中拥有它们:

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}

cthreads,

{$ENDIF}{$ENDIF}

Classes, sysutils, SDL2, SDL2_ttf

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


你遇到了什么错误?是在什么时候出现的? - Marco van de Voort
2个回答

0

我假设目标是 Windows 操作系统,否则 DLL 将无法工作。将 SDL.dll 放置在应用程序目录中,这是 Windows 寻找任何 DLL 的第一位置。

定义函数为

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

cdecl 取决于参数传递给函数的方式。希望这能让你有所启发。


0

基本上他告诉你使用Jedi头文件是根本有问题的,我可能是开发者(或者是你在这里提到的几个人之一),把dll文件放在应用程序目录下。你的uses子句是正确的,但你忘记了很多单元。你会在那个库(sdl)中遇到很多问题(我试图解决其中很多),但我没有得到适当的认可。

此时我正在倾向于使用Cairo。

Microsoft(gh)正在捣鬼我的源代码。我找到了另一个git存储库,很快就会上传。

寻找Lazarus图形。现在它还是个错误的名称,因为我的lcl编程还不够好,但我正在努力。

用Vs Studio或VS Code应用程序编译这个应该没问题,我知道它大约有15 GB的容量。(我可以在那么大的空间内安装整个Linux系统)。

你可能已经在64位平台上下载了32位库,或者反过来,这将引入很多严重的问题。

Jedi头文件是你尝试引用的这个隐式使用的Pascal端口(c头文件)。没有它们,你什么也做不了。


2
你的回答晚了6年 :) - Andro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接