C#Steamworks GetSteamID AccessViolationException异常
因此,我目前正在尝试在基于C#的mod中使用Steamworks API来制作游戏 到目前为止还不错,但是由于游戏没有内置函数,我正在尝试使用SteamWorksAPI(游戏中打包的DLL)获取玩家的Steam ID,以便以后在另一个进程中使用 为了开始这个过程,我尝试在字符串中定义它,并调用streamuser.getstreamid来获取所需的信息:C#Steamworks GetSteamID AccessViolationException异常,c#,steamworks-api,C#,Steamworks Api,因此,我目前正在尝试在基于C#的mod中使用Steamworks API来制作游戏 到目前为止还不错,但是由于游戏没有内置函数,我正在尝试使用SteamWorksAPI(游戏中打包的DLL)获取玩家的Steam ID,以便以后在另一个进程中使用 为了开始这个过程,我尝试在字符串中定义它,并调用streamuser.getstreamid来获取所需的信息: public static string playerSteamID { get
public static string playerSteamID
{
get
{
return SteamUser.GetSteamID().ToString();
}
}
这在VS中不会出现错误,但是当mod调用此函数时,它会抛出System.AccessViolationException“试图读取或写入受保护内存”
我已经尝试适应ulogn版本的streamuser.getstreamid().m_streamid,但仍然得到相同的结果
目前,我让国防部做的只是:
InformationManager.DisplayMessage(new InformationMessage($"Steam ID is: {genStrings.playerSteamID}", Color.White));
注意,第一部分是游戏代码在使用中的一些方面,我不想再写字符串了,只要读一下就可以了
错误的屏幕截图:
如果要使用TaleWorlds API,首先需要调用
Steamworks.SteamAPI.Init
或TaleWorlds.PlatformService.PlatformServices.Initialize