小编Sau*_*nda的帖子

使用wiiuse库及其事件的问题

我最近下载了wiiuse库,但在使用它时遇到了问题.我写了一个小代码,但是在连接之后远程断开连接.即使是作者网站上的代码也不起作用; 当我尝试该代码时也会发生同样的情况.我尝试了我在库中使用的演示应用程序但是工作正常.

我正在使用Windows XP SP3和MinGW(gcc 4.5.0)来编译代码.


编辑1

我在Linux上也尝试过相同的功能.在那里,它没有受到断开问题的困扰,但它在拾取正确的事件时遇到了问题.无论我做什么,它只会发出/捕获WIIUSE_NONE.将WIIUSE_EVENT永远不会发出/捕获.

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include "wiiuse.h"

#define NUMBER_OF_REMOTES 1
void handle_event(struct wiimote_t* rm){

    if(IS_PRESSED(rm, WIIMOTE_BUTTON_UP)){
        printf("\n - IR Activated - \n");
        wiiuse_set_ir(rm,1);
    }
    else if(IS_PRESSED(rm, WIIMOTE_BUTTON_DOWN)){
        printf("\n - IR Dectivated - \n");
        wiiuse_set_ir(rm,0);
    }

    if(WIIUSE_USING_IR(rm)){

        for(int i=0; i<4; i++){
            if(rm->ir.dot[i].visible){
                printf("IR source %i: (%u, %u)\n", i, rm->ir.dot[i].x, rm->ir.dot[i].y);
            }
            printf("IR cursor: (%u, %u)\n", rm->ir.x, rm->ir.y);
            printf("IR z distance: %f\n", rm->ir.z);

        }
    }
}

void handle_disconnect(struct …
Run Code Online (Sandbox Code Playgroud)

c linux events wiimote wiiuse

21
推荐指数
1
解决办法
1272
查看次数

i + = ++我在C++ 0x中的未定义行为吗?

我非常确信我已经发现,就C++ 0x而言,这i = ++i 并不是未定义的,但我无法判断是否有i += ++i明确定义的行为 .任何接受者?

c++ undefined-behavior compound-assignment c++11

14
推荐指数
1
解决办法
730
查看次数

如何使用Javascript获取调用者元素?

我有一个id为"tbl"的表,它有2行3列.每个单元格(td)都有一个明确定义的id.此外,该表有一个调用函数foo()的onclick事件.只要单击任何单元格,就会生成onclick().表标签是

<table id ="tbl"width ="80%"height ="20%"onclick ="javascript:foo()">

我也尝试过javascript:foo(this)

我想找出被点击的表格单元格的id.

我试过以下javascript

function foo(e)
{
    var sender = (e && e.target) || (window.event && window.event.srcElement);
    alert("Sender" + sender.id);
}
Run Code Online (Sandbox Code Playgroud)

这适用于Google Chrome和IE,但不适用于Firefox.在Firefox中,发件人未定义.如何在Firefox中获取调用者单元格?

html javascript javascript-events

10
推荐指数
1
解决办法
1万
查看次数

将CSS样式表与ASP.NET自定义控件链接

我正在开发一个自定义控件,它是表和按钮的组合.我还有一个外部CSS样式表,它定义了这些元素的样式.

Control的类型是CompositeControl,在名称空间MyControls下,类的定义在类文件CompositeControl.cs中,生成的dll文件名为MyControls.dll

样式表称为styles.css,与CompositeControl.cs位于同一文件夹中

对于每个控件(Button,TableCell等),我已经指定了CssClass属性.

当我将此控件添加到我的ASP.NET网页并在localhost运行时检查HTML源代码时,我看到所有控件标记都正确设置了class属性,但源代码不包含<link>包含外部所需的标记样式表.

有人能告诉我还需要做些什么才能使这项工作成功吗?谢谢.

css asp.net custom-controls stylesheet

7
推荐指数
1
解决办法
6431
查看次数

G ++ 4.5错误:无法诊断缩小初始化列表

我尝试了以下代码:

int main()
{
   int x {23.22};
}
Run Code Online (Sandbox Code Playgroud)

其中包括需要缩小的初始化,但代码编译正常,没有任何错误或警告.另一方面,以下代码给出错误:

int main()
{
   int x[]{23.22};
}
Run Code Online (Sandbox Code Playgroud)

我发现了一个bug还是什么?

PS:我目前正在使用GCC 4.5.0

c++ g++ narrowing c++11

6
推荐指数
1
解决办法
316
查看次数

派生类的析构函数是虚拟的而代码崩溃,而基类的dtor则不是

我在gcc 4.4.5上尝试了以下代码.

如果成员'data'不存在,则代码执行正常,但在其存在时,它会崩溃.当派生类'dtor不是虚拟的时,它也不会崩溃.

我知道在这两种情况下,行为都是未定义的,如C++ 03(5.3.5/3)所列,但仍有人可以向我提供一些解释为什么在后一种情况下会崩溃?

是的,我知道UB意味着任何事情都可能发生,但仍然想知道特定于实现的细节.

#include<iostream>    
using std::cout;

struct base{
int data;
   base(){
      cout << "ctor of base\n";
   }
   ~base(){
      cout << "dtor of base\n";
   }
};

struct derived :  base{
   derived(){
      cout << "ctor of derived\n";
   }
   virtual ~derived(){
      cout << "dtor of derived\n";
   }
};

int main(){
   base *p = new derived;
   delete p;
}
Run Code Online (Sandbox Code Playgroud)

c++ crash gcc undefined-behavior virtual-destructor

6
推荐指数
1
解决办法
1546
查看次数

现代 C++ 设计中的 CompileTimeChecker 未按预期工作

我最近开始阅读 Andrei Alexandrescu 的 Modern C++ Design。阅读编译时断言后,我尝试了以下代码:

模板<bool> struct CompileTimeChecker
{
    CompileTimeChecker(...){};
};
模板<> struct CompileTimeChecker<false>{};

#define STATIC_CHECK(expr, msg) \
{\
    类 ERROR_##msg{}; \
    (void)sizeof(CompileTimeChecker<(expr)!=0>((ERROR_##msg()))); /*第1行*/ }


int main()
{
    STATIC_CHECK(sizeof(char)>sizeof(int),TypeTooNarrow); /*第2行*/

    STATIC_CHECK(sizeof(char)<sizeof(int),TypeTooNarrow); /*第3行*/
}

由于第 2 行,代码不应编译,但编译正常。如果我将第 1 行更改为

(void)(CompileTimeChecker<(expr)!=0>((ERROR_##msg()))); /*第1行*/ }

或者

新的 CompileTimeChecker<(expr)!=0>((ERROR_##msg())); /* 第 1 行 */ }

它按预期工作。我不明白。

c++ templates compile-time

5
推荐指数
0
解决办法
725
查看次数

QMap :: contains()没有返回预期值

我有一个包含QMap对象的类:

QMap<QString, Connection*> users;
Run Code Online (Sandbox Code Playgroud)

现在,在下面的函数Foo()中,if子句总是返回false,但是当我遍历map时,比较的QString,即str1存在于键中.

void Foo(QString& str1, QString& str2)
{    
    if(users.contains(str1))
        users[str1]->doStuff(str2);
    else
    {
        for(QMap<QString, Connection>::iterator iter = users.begin(); 
                           iter!= users.end();iter++)
            qDebug()<<iter.key();
    }
}
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?为什么不包含()返回true?

c++ qt qmap

4
推荐指数
1
解决办法
2763
查看次数

在使用模板模板参数时出现荒谬的错误

我一直在试图建立一个模板类(Test2即需要2个模板参数),Type1Type2.众所周知,第二个参数也是一个带有2个模板参数(TypeATypeB)的模板化类.

现在,为了构造一个对象Test2,我希望用户能够使用两种类型的构造函数中的任何一种:

  1. 一个接受Type1和的对象 Type2.
  2. 一个接受对象的Type1,TypeATypeB.

我写了以下代码:

#include <iostream>

template<class TypeA, class TypeB>
struct Test
{
    TypeA t1obj;
    TypeB t2obj;
    Test(const TypeA& t1, const TypeB& t2)
        : t1obj(t1), t2obj(t2) {std::cout<<"Test::Type1, Type2\n";}
};


template<class Type1,
         template<typename TypeX, typename TypeY> class Type2 >
struct Test2
{
    Type1 t1obj;
    Type2<typename TypeX, typename TypeY> t2obj; //Line 17

    Test2(const Type1& t1,
          const Type2<typename TypeX, typename …
Run Code Online (Sandbox Code Playgroud)

c++ templates template-templates

1
推荐指数
1
解决办法
235
查看次数