Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单游戏窗口。句柄不';返回窗口或窗体_C#_Monogame_Bass - Fatal编程技术网

C# 单游戏窗口。句柄不';返回窗口或窗体

C# 单游戏窗口。句柄不';返回窗口或窗体,c#,monogame,bass,C#,Monogame,Bass,我已经尝试了一段时间来修复这个问题,但我还没有看到任何关于这个主题的在线解决方案 问题是,在平台DesktopGL上使用MonoGame时,Window.Handle似乎无效。由于尝试从此句柄获取窗口/窗体时返回null,因此BASS.Net无法在此窗口句柄上播放音频将进一步支持此操作 下面是我试图使用句柄的部分代码(使用Bass.Net进行音频播放): 受保护的覆盖无效初始化(){ 游戏=这个; //从窗口句柄获取窗体 Form=(Form)Control.FromHandle(Game.Wi

我已经尝试了一段时间来修复这个问题,但我还没有看到任何关于这个主题的在线解决方案

问题是,在平台DesktopGL上使用MonoGame时,Window.Handle似乎无效。由于尝试从此句柄获取窗口/窗体时返回null,因此BASS.Net无法在此窗口句柄上播放音频将进一步支持此操作

下面是我试图使用句柄的部分代码(使用Bass.Net进行音频播放):

受保护的覆盖无效初始化(){
游戏=这个;
//从窗口句柄获取窗体
Form=(Form)Control.FromHandle(Game.Window.Handle);
//使用窗口句柄初始化低音
Bass.Bass_Init(-1410,BASSInit.Bass_设备_默认值,Game.Window.Handle,null);
base.Initlialize()
}
我试着在网上到处寻找,有消息称MonoGame平台WindowsDX显然返回了一个有效的表单,尽管我注意到MonoGame的never版本似乎不再支持该平台,此外,我希望这个项目是跨平台的,所以坚持使用WindowsDX,即使它存在/工作也不是一个好的解决方案

提前感谢所有设法找到MonoGame为什么不返回窗口以及为什么这段代码不起作用的人。

“Window.Handle”仅在WindowsDX平台上有效

OpenGL无论在何种平台(包括Windows)上都能满足这一要求


如果您正在寻找跨平台解决方案,请查看其他地方。

查看MonoGame的在线文档,可以发现
Game.Window
返回一个
GameWindow
实例(),其
Handle
属性返回一个
IntPtr
()。你不能直接转换成
表单
,你可以使用
控件。从handle
和转换成
表单
,但我不确定MonoGame的窗口是否基于WinForms的
表单
类旧版本的XNA(这是我移植到MonoGame的旧项目使用的)也有游戏。Window是GameWindow实例,它确实能够从它的句柄返回表单,所以我不再完全确定。你说“此外,我希望这个项目是跨平台的”,但如果你依赖表单(和Winforms),那么它已经不是跨平台的了。我不熟悉Bass,但如果它依赖于Windows窗体进行初始化,那么它也不是跨平台的。