C#不能调用 Handle

xhi228733 2015-12-16 01:25:30
private JoystickInterface.Joystick jst;
public Form1()
{
InitializeComponent();
jst = new JoystickInterface.Joystick(Handle);
}


加入 jst = new JoystickInterface.Joystick(Handle); 后。连第一行的初始化都不运行了。
请教这时什么问题啦? 我是vs2016
...全文
285 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Avatarhhh 2019-01-11
  • 打赏
  • 举报
回复

这个是因为一个loaderlock问题导致启动不了,刚刚遇到了
nomasp 2015-12-16
  • 打赏
  • 举报
回复
已推荐……
changjiangzhibin 2015-12-16
  • 打赏
  • 举报
回复
JoystickInterface 这个DLL或EXE的初始化问题
xhi228733 2015-12-16
  • 打赏
  • 举报
回复
堆栈信息中什么都没有, 这是输出里的信息。 “Joystick.vshost.exe”(CLR v4.0.30319: Joystick.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_zh-Hans_b77a5c561934e089\mscorlib.resources.dll”。模块已生成,不包含符号。 线程 0xe94 已退出,返回值为 0 (0x0)。 线程 0x148c 已退出,返回值为 0 (0x0)。 线程 0x2094 已退出,返回值为 0 (0x0)。 线程 0x1dfc 已退出,返回值为 0 (0x0)。 “Joystick.vshost.exe”(CLR v4.0.30319: Joystick.vshost.exe): 已加载“d:\Documents\Visual Studio 2015\Projects\Joystick\Joystick\bin\Debug\Joystick.exe”。已加载符号。
xhi228733 2015-12-16
  • 打赏
  • 举报
回复
我系统是win10 JoystickState joy = new JoystickState(); 删掉也一样。
cheng2005 2015-12-16
  • 打赏
  • 举报
回复
因为你加载JoystickState这个类的时候卡住了,检查JoystickState这个类的静态构造方法。 可以在打开窗体的时候暂停调试,查看堆栈
xhi228733 2015-12-16
  • 打赏
  • 举报
回复
比如这个新建的 using Microsoft.DirectX.DirectInput; namespace Joystick { public partial class Form1 : Form { public Form1() { InitializeComponent(); Device dev; //枚举所有设备,游戏手柄只有1个,只取一个GUID Guid id = new Guid(); foreach (DeviceInstance di in Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly)) { id = di.ProductGuid; } dev = new Device(id); JoystickState joy = new JoystickState(); } } } 只要加入下面的代码调试启动,就完全没反应, InitializeComponent();的断点都不执行。 难道是VS2015 版本问题?
caojinrong 2015-12-16
  • 打赏
  • 举报
回复
JoystickInterface,虽然没有用过,但怎么看都该是和硬件相关的,HANDLE估计也得是设备句柄,而非窗体句柄吧!!!
crystal_lz 2015-12-16
  • 打赏
  • 举报
回复
谁知道 你的那个是什么东西的代码?。。。 你确定是 handle 的问题 如果你认为是 那你就下断点看看是不是 0 如果不是 0 那就是 你调用的那个东西 有问题的。。。
xhi228733 2015-12-16
  • 打赏
  • 举报
回复
放了。一样不行。所以我才换个位置试试。 private void Form1_Load(object sender, EventArgs e) { MessageBox.Show("test"); // grab the joystick //jst = new JoystickInterface.Joystick(Handle); //string[] sticks = jst.FindJoysticks(); //jst.AcquireJoystick(sticks[0]); 不屏蔽就启动不了,无任何反应。
兔子-顾问 2015-12-16
  • 打赏
  • 举报
回复
构造函数,这个时候窗体的句柄还没创建呢,你应该放到Load中执行。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧