private JoystickInterface.Joystick jst;
        public Form1()
        {
            InitializeComponent();
            jst = new JoystickInterface.Joystick(Handle);
        }
加入  jst = new JoystickInterface.Joystick(Handle); 后。连第一行的初始化都不运行了。
请教这时什么问题啦? 我是vs2016

解决方案 »

  1.   

    构造函数,这个时候窗体的句柄还没创建呢,你应该放到Load中执行。
      

  2.   

    放了。一样不行。所以我才换个位置试试。 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]);不屏蔽就启动不了,无任何反应。
      

  3.   

    谁知道 你的那个是什么东西的代码?
    你确定是 handle 的问题 如果你认为是 那你就下断点看看是不是 0 如果不是 0 那就是 你调用的那个东西 有问题的
      

  4.   

    JoystickInterface,虽然没有用过,但怎么看都该是和硬件相关的,HANDLE估计也得是设备句柄,而非窗体句柄吧!!!
      

  5.   

    比如这个新建的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 版本问题?
      

  6.   

    因为你加载JoystickState这个类的时候卡住了,检查JoystickState这个类的静态构造方法。
    可以在打开窗体的时候暂停调试,查看堆栈
      

  7.   

    我系统是win10
      JoystickState joy = new JoystickState();
    删掉也一样。
      

  8.   

    堆栈信息中什么都没有, 这是输出里的信息。“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”。已加载符号。
      

  9.   

    JoystickInterface 这个DLL或EXE的初始化问题
      

  10.   


    这个是因为一个loaderlock问题导致启动不了,刚刚遇到了