【问题标题】:C# Steamworks GetSteamID AccessViolationExceptionC# Steamworks GetSteamID AccessViolationException
【发布时间】:2020-07-16 22:11:51
【问题描述】:

所以我目前正在尝试在基于 C# 的游戏模组中使用 Steamworks API。

到目前为止一切都很好,但是由于游戏没有内置功能,我正在尝试使用 SteamWorks API(游戏中包含的 DLL)来获取玩家的 Steam ID,以便以后在另一个进程中使用.

为了开始这项工作,我尝试在一个字符串中定义它并调用 SteamUser.GetSteamID 以获取所需的信息:

    public static string playerSteamID
        {
            get
            {
                return SteamUser.GetSteamID().ToString();
            }
        }

这在 VS 中不会出现错误,但是当 mod 调用此函数时,它会抛出 System.AccessViolationException "Attempted to read or write protected memory."

我已经尝试适应 ulogn 版本的 SteamUser.GetSteamID().m_SteamID 但仍然会导致相同的结果。

目前我的模组试图做的就是:

InformationManager.DisplayMessage(new InformationMessage($"Steam ID is: {genStrings.playerSteamID}", Color.White));

注意,第一部分是正在使用的游戏代码方面,我不想再写字符串,只是阅读它。

错误截图:

https://i.gyazo.com/09ea950b91abb4a6e4fc0a9ac577a253.png

【问题讨论】:

    标签: c# steamworks-api


    【解决方案1】:

    如果要使用 TaleWorlds API,首先需要调用 Steamworks.SteamAPI.InitTaleWorlds.PlatformService.PlatformServices.Initialize

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      相关资源
      最近更新 更多