小编Tom*_*ica的帖子

什么(浮动)(par4 >> 16&255)/ 255.0F; 意思?

我发现了这行代码:this.red = (float)(par4 >> 16 & 255) / 255.0F;其中red已被声明为a float.

我试图了解它的作用,特别是因为完整的代码是:

this.red = (float)(par4 >> 16 & 255) / 255.0F;
this.blue = (float)(par4 >> 8 & 255) / 255.0F;
this.green = (float)(par4 & 255) / 255.0F;
this.alpha = (float)(par4 >> 24 & 255) / 255.0F;
GL11.glColor4f(this.red, this.blue, this.green, this.alpha);
Run Code Online (Sandbox Code Playgroud)

所以我猜这个以某种方式使用int(par4)的不同位置来着色文本.在这种情况下par4等于553648127.

这四行是什么意思,特别是>> 16 & 25

java hex bit-manipulation

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

我可以在C中将数字常量与字符串连接起来吗?

我有一个非常简单的程序,预计会从用户那里获取较少的X字符并将其打印回来:

#include <stdio.h>
#define MAX_INPUT_LENGTH 8
#define HOME 1

int main()
{
    char vstup[MAX_INPUT_LENGTH];

    printf("Write something. But no more than "MAX_INPUT_LENGTH" characters.\n");
    scanf("%"MAX_INPUT_LENGTH"s", vstup);
    printf(vstup);


    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当然,我的尝试"blah"CONSTANT"blah"不起作用.但应该离开去做,不应该吗?我认为常量大多只是程序中被替换的文本片段,只有一些基本逻辑.

c string

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

如何在javascript中正确初始化ErrorEvent?

我需要以ErrorEvent编程方式触发,但无法弄清楚如何初始化事件的属性.这些属性是只读的,initEvent()只是初始化事件类型,是否有气泡,以及是否可以取消.

我试过了

var myErrorEvent = new ErrorEvent("error", new Error("This is my error"));
Run Code Online (Sandbox Code Playgroud)

myErrorEvent.initEvent("error", false, true, new Error("This is my error"));
Run Code Online (Sandbox Code Playgroud)

要么

// This function would be defined in IE only. Could not find it in Chrome.
myErrorEvent.initErrorEvent("error", false, true, "This is my error", "myfile.js", 1234);
Run Code Online (Sandbox Code Playgroud)

我尝试了很多其他的东西,但无法ErrorEvent正确设置属性.

这甚至可行吗?

javascript javascript-events dispatchevent

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

获取可变数量的参数并将它们放在std :: vector中

我正在创建一个类 - 让我们称之为Container- 它基本上只包含一个std::vector特殊的逻辑,决定了如何选择矢量值.我想添加一个方法,通过一次调用向我的类添加多个值.这是我添加一个项目的方法:

void LoopGenerator::add(RandomStripe &stripe)
{
    stripes.push_back(new SingleStripe(stripe));
}
Run Code Online (Sandbox Code Playgroud)

我想要一个像这样调用的类似方法:

LoopGenerator gen = LoopGenerator();
gen.add(RandomStripe(), RandomStripe(), RandomStripe() ... and as much as you want ... );
Run Code Online (Sandbox Code Playgroud)

并将所有参数添加到内部std::vector.

这可能只使用标准库,或者最好没有标准库吗?

c++ overloading vector

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

将WinMain(或wWinMain)参数传递给普通main

如果您尝试将构建类型更改Console (/SUBSYSTEM:CONSOLE)Windows (/SUBSYSTEM:WINDOWS),则会收到错误,抱怨输入点WinMain丢失:

MSVCRT.lib(crtexew.obj):错误LNK2001:未解析的外部符号_WinMain @ 16

我认为解决这个问题的最佳方法是int main(int, char**)WinMain以下方面调用您的法线:

#ifdef _WINDOWS_
INT WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    PSTR lpCmdLine, INT nCmdShow)
{
    return main(0, NULL);
}
#endif
Run Code Online (Sandbox Code Playgroud)

问题是ImageMagick正在使用控制台参数(我计划将来也使用它们):

分段故障imagemagick init

所以过去NULL并且0可能不是一个好主意.如何将WinMain参数转换为mainarugments?

c++ winapi

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

使varargs Exception构造函数填充stringstream

基本上我正在制作Exception类,我希望能够轻松传递调试细节,例如:

var error = someFunction();
if(error!=0) {
    throw MyException("someFunction ended with error state #",error,'.');
}
Run Code Online (Sandbox Code Playgroud)

这将要求MyException类接受可以处理的varargs参数stringstream.我不知道我究竟能做到这一点,我想象的是:

#include <string>
#include <sstream>
template /* MUCH DEEP MAGIC HERE**/
MyException::MyException(/* MOAR DEEP MAGIC!!! **/) {
    std::stringstream ss;
    for(/** ITERATE THROUGH MORE MAGIC**/) {
        ss<</**FETCH MAGIC STUFF**/;
    }
    this->message = ss.str();
}
Run Code Online (Sandbox Code Playgroud)

c++ templates stringstream

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

我应该在哪里获得b2.exe和其他人用来构建boost的bjam.exe?

我有(再次)升级库的问题,特别是zlib/iostreams部分的问题,这是由于该升级版本中的(再次)错误 - zlib库中有一些更改没有反映到该升级版本.

我不是唯一一个遇到这个问题的人,但我似乎是唯一一个不知道bjam.exe每个人都在讨论什么的人,就好像它是Windows上的内置命令一样.显然,我自己过去使用过那个命令,但那是2年前的事.

我试过这个:http://sourceforge.net/projects/boost/files/boost-jam/3.1.18/但我得到的是更多被诅咒的源代码.

那我从哪里得到它?我现在在哪里可以得到它?

c++ boost

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

使用Math.round后在JavaScript中使用-0?什么是-0?

我只想生成范围内的随机整数<-1,1>,即-1,0或1.我认为这段代码指出:

Math.round(Math.random()*2-1)
Run Code Online (Sandbox Code Playgroud)

但是除了-1,0和1之外,我还得到了一个更多的价值.我不确定应该是什么:

图片描述

现在我不认为这是实现错误,但如果是,我正在使用Firefox 41,同样的事情发生在Google Chrome 39.当我尝试登录-0控制台时,它显示为-0-0转换为String显示为"0".它是什么?我可以将它用于某些东西,比如一些很酷的编程黑客和解决方法吗?如果我不忽略它会导致一些错误吗?

javascript

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

通过引用将提交的文件传递给Web Worker,并且开销尽可能小

我将有一个网络工作者来解析巨大的文本文件(200000行,尽管语法简单)。我希望用户通过拖放即可提交该文件,否则将获得一个File对象:

   var work = new Worker("parser.js")
   document.addEventListener("drop", function(e) {
       e.preventDefault();
       var dt    = e.dataTransfer;
       var files = dt.files;
       if(files.length>0) {
         var firstFile = files[0]
         var reader = new FileReader();
         //SEND FILE TO WORKER?
       }
   });
Run Code Online (Sandbox Code Playgroud)

我听说了可转让的对象。有没有办法文件传输到Worker?以某种方式,GUI线程不会因读取文件而变慢?

javascript web-worker fileapi transferable

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

如何开始使用QtLinguist翻译我的QtCreator项目?

我有一个简单的.proQt Creator项目.我在Qt .uiXML表单文件中有大部分(如果不是全部)应用程序文本.我想使用Qt Linguist翻译该项目中的文本,但我不知道如何开始.互联网上没有有用的"Qt Linguist入门"文章.页面自豪地称自己Qt Linguist手册也不是很有用,因为它只包含通用信息,而不是实用的提示.

我在Qt Creator中找到了这些项目:

图片描述

我不太清楚如何使它们工作以及它们与Qt Linguist的关系是什么,它是完全独立的应用程序.我打开了Qt Linguist,它甚至没有包含任何File- > New...项目菜单,这是我要开始的地方.

qt qt-linguist

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