You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:C#调用SplashKit的OpenWindow时遇System.StackOverflowException

C#调用SplashKit的OpenWindow方法触发StackOverflowException

错误信息

Exception has occurred: CLR/System.StackOverflowException
An unhandled exception of type 'System.StackOverflowException' occurred in SplashKitSDK.dll

问题代码

// Give us access to methods in SplashKit library
using static SplashKitSDK.SplashKit;

// Give us access to convert methods from C#
using static System.Convert;

string userInput;
int width, height, delaySeconds;

// Output a message
WriteLine("Window Test");

// Write("How wide do you want the window? Enter width: ");
// userInput = ReadLine();

// // Call ToInt32 from Convert
// width = ToInt32(userInput);

// Write("How high do you want the window? Enter height: ");
// userInput = ReadLine();

// // Call ToInt32 from Convert
// height = ToInt32(userInput);

// Write("How many seconds do you want it to show for? Enter seconds: ");
// userInput = ReadLine();

// delaySeconds = ToInt32(userInput);

// Call open window from SplashKit
OpenWindow("Test Window", 600, 600);

// ClearScreen(RandomColor());
// RefreshScreen();

// Delay(delaySeconds * 1000);

// CloseAllWindows();

解决方案建议

  • 更新SplashKit SDK到最新稳定版:旧版本的SplashKit可能存在与.NET运行时交互的栈溢出bug,下载官方最新包替换现有引用。
  • 添加SplashKit初始化代码:部分版本的SplashKit要求在调用窗口方法前先初始化库,在OpenWindow前添加InitSplashKit();尝试修复。
  • 检查项目.NET框架版本:确认项目目标框架(如.NET 6/7/8)与SplashKit SDK兼容,不匹配的框架版本可能导致底层调用异常。
  • 调整调试设置:如果使用Visual Studio调试,关闭“工具->选项->调试->启用编辑并继续”,该功能可能干扰Native库的调用栈。
  • 替换静态导入为常规调用:将using static SplashKitSDK.SplashKit;改为using SplashKitSDK;,然后用SplashKit.OpenWindow("Test Window", 600, 600);调用,排查静态导入导致的方法解析冲突。

内容的提问来源于stack exchange,提问作者Jack Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:13:20