SDL3_API分类参考_版本(CategoryVersion)

2026-3-6 / 0 评论 / 4 阅读

版本子系统(CategoryVersion)

用于查询 SDL 版本信息的功能集,可分别获取应用编译时依赖的头文件版本运行时链接的库文件版本


函数

  • SDL_GetRevision:获取 SDL 库的版本修订号(字符串形式,如 git 提交哈希)
  • SDL_GetVersion:获取运行时链接的 SDL 库的版本号(填充 SDL_version 结构体,包含主/次/微版本)

数据类型

  • (无)

结构体

  • (无)

枚举

  • (无)

  • SDL_MAJOR_VERSION:提取版本号中的主版本号(如 3.1.2 中的 3)
  • SDL_MICRO_VERSION:提取版本号中的微版本号(如 3.1.2 中的 2)
  • SDL_MINOR_VERSION:提取版本号中的次版本号(如 3.1.2 中的 1)
  • SDL_REVISION:SDL 库的编译时修订号(宏定义,静态值)
  • SDL_VERSION:将主/次/微版本号填充到 SDL_version 结构体中(编译时使用)
  • SDL_VERSION_ATLEAST:判断当前 SDL 版本是否≥指定版本(如 SDL_VERSION_ATLEAST(3,0,0))
  • SDL_VERSIONNUM:将主/次/微版本号合并为一个整数(便于版本比较,格式:主版本1000 + 次版本100 + 微版本)
  • SDL_VERSIONNUM_MAJOR:从合并后的版本整数中提取主版本号
  • SDL_VERSIONNUM_MICRO:从合并后的版本整数中提取微版本号
  • SDL_VERSIONNUM_MINOR:从合并后的版本整数中提取次版本号

FreeBASIC 示例代码

' 引入 SDL 相关声明(需确保 FreeBASIC 已链接 SDL 库)
#Include "SDL.bi"

' 主程序示例
Dim As SDL_version linkedVersion  ' 存储运行时链接的 SDL 版本
Dim As ZString Ptr revisionStr    ' 存储修订号字符串

' 1. 获取运行时 SDL 库版本
SDL_GetVersion(@linkedVersion)
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "运行时 SDL 版本:%d.%d.%d", _
    linkedVersion.major, linkedVersion.minor, linkedVersion.patch)

' 2. 获取 SDL 修订号
revisionStr = SDL_GetRevision()
If (revisionStr <> NULL) Then
    SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "SDL 修订号:%s", revisionStr)
Else
    SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "SDL 修订号:未知")
End If

' 3. 编译时版本检查(宏使用)
#If SDL_VERSION_ATLEAST(3, 0, 0) Then
    SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "编译时依赖 SDL 3.x 及以上版本")
#Else
    SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, "编译时依赖 SDL 版本低于 3.0.0")
#End If

' 4. 版本号数值比较
Dim As UInteger versionNum = SDL_VERSIONNUM(linkedVersion.major, linkedVersion.minor, linkedVersion.patch)
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "版本号数值:%d", versionNum)

' 检查是否满足最低版本要求(如 3.1.0)
If (versionNum >= SDL_VERSIONNUM(3, 1, 0)) Then
    SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "满足 3.1.0 及以上版本要求")
Else
    SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "版本过低,至少需要 SDL 3.1.0")
End If

' 5. 提取版本号各部分(宏示例)
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "主版本号:%d", SDL_MAJOR_VERSION(linkedVersion))
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "次版本号:%d", SDL_MINOR_VERSION(linkedVersion))
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "微版本号:%d", SDL_MICRO_VERSION(linkedVersion))

评论一下?

OωO
取消