小编Jok*_*_vD的帖子

Windows用于检查用户名的区域设置是什么?

Windows上的用户名不区分大小写(但保留大小写),因此您可以同时登录UserNameuSERnAME.但是,"case"对于不同的语言环境是不同的 - Windows使用哪种语言环境来决定提供的用户名是否与帐户数据库中的用户名相同?

我相信它是Invariant Locale,并不依赖于"语言和区域选项"对话框中的任何内容,但我可能错了.在任何情况下,我都会感谢像MSDN文章那样的确认(或反驳).

windows locale case-sensitive username

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

你能创建一个无法解决的,不可解决的Java应用程序吗?

有没有办法确保用户无法关闭或离开我的Swing应用程序?我试图将其全屏显示,但你仍然可以使用Alt-Tab远离它 - 此外,当你决定使用JOptionPane的对话框时,这不会很好.

那么,有没有办法让用户在设备上只使用这一个Java程序?

编辑:有些人想知道这个目的.该应用程序应该被"嵌入"到手持设备(在Windows下运行),因此设备的用户将使用它,因为我们打算使用它 - 例如,他们不会玩Freecells或做更糟糕的是,而不是做实际的工作.你看过售票亭了吗?他们被锁定得很好,你不能只关闭他们的华丽GUI并进入Windows桌面!

java swing jframe

9
推荐指数
2
解决办法
3965
查看次数

具有模板的对象文件如何链接在一起

想象一下,我们有三个.h文件:

f.h:

template <typename T> class Class {public: Class() {} T id(T x) { return x; }};
Run Code Online (Sandbox Code Playgroud)

g.h:

template <typename T> class Class {public: Class() {} T id(T x) { return x + 100; }};
Run Code Online (Sandbox Code Playgroud)

h.h:

template <typename T> class Class {public: Class(); T id(T x); };
Run Code Online (Sandbox Code Playgroud)

现在,我们还有三个.cpp文件:

f.cpp:

#include "f.h"
int f(int x) { Class<int> t; return t.id(x); }
Run Code Online (Sandbox Code Playgroud)

g.cpp:

#include "g.h"
int g(int x) { Class<int> t; return t.id(x); …
Run Code Online (Sandbox Code Playgroud)

c++ linker templates

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

快速log2(float x)实现C++

我需要在C++中实现非常快速的log2(float x)函数.

我发现了一个非常有趣的实现(非常快!)

#include <intrin.h>

inline unsigned long log2(int x)
{
    unsigned long y;
    _BitScanReverse(&y, x);
    return y;
}
Run Code Online (Sandbox Code Playgroud)

但是此函数仅适用于输入中的整数值.

问题:有没有办法将此函数转换为double类型的输入变量?

UPD:

我找到了这个实现:

typedef unsigned long uint32;
typedef long int32;   
static inline int32 ilog2(float x)
{
    uint32 ix = (uint32&)x;
    uint32 exp = (ix >> 23) & 0xFF;
    int32 log2 = int32(exp) - 127;

    return log2;
}
Run Code Online (Sandbox Code Playgroud)

这比前一个示例快得多,但输出是无符号类型.

是否可以使此函数返回double类型?

提前致谢!

c++ performance

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

JAXB不解组接口列表

似乎JAXB无法读取它所写的内容.请考虑以下代码:

interface IFoo {
    void jump();
}

@XmlRootElement
class Bar implements IFoo {
    @XmlElement
    public String y;

    public Bar() {
        y = "";
    }

    public Bar(String y) {
        this.y = y;
    }

    @Override
    public void jump() {
        System.out.println(y);
    }
}

@XmlRootElement
class Baz implements IFoo {
    @XmlElement
    public int x;

    public Baz() {
        x = 0;
    }

    public Baz(int x) {
        this.x = x;
    }

    @Override
    public void jump() {
        System.out.println(x);
    }
}

@XmlRootElement
public class Holder {
    private List<IFoo> …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

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

RAII和构造函数中的异常

想象一下,我有一份工作要做,可以通过三种不同的方式来完成:缓慢而痛苦,但却是安全的方式; 给你带来适度痛苦的方式Resource1; 一种快速简便的方法,需要Resource1Resource2.现在,这些资源是宝贵的,所以我将它们包装成RAII实现ResNHolders并写下这样的东西:

void DoTheJob(Logger& log/*, some other params */) {
    try {
        Res1Holder r1(/* arguments for creating resource #1 */);
        try {
            Res2Holder r2(/* arguments */);
            DoTheJobQuicklyAndEasily(log, r1, r2);
        }
        catch (Res2InitializationException& e) {
            log.log("Can't obtain resource 2, that'll slowdown us a bit");
            DoTheJobWithModerateSuffering(log, r1);
        }
    }
    catch (Res1InitializationException& e) {
        log.log("Can't obtain resource 1, using fallback");
        DoTheJobTheSlowAndPainfulWay(log);
    }
}
Run Code Online (Sandbox Code Playgroud)

"DoTheJobXxx()"引用Logger/ ResNHolder,因为它们是不可复制的.我是不是太笨拙了?有没有其他聪明的方法来构建函数?

c++ exception raii

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

安全地使用临时文件

我在程序中使用了一个静态库,它只能将文件名作为输入,而不是实际的文件内容.关于图书馆的源代码,我无能为力.所以我想:创建一个全新的文件,将数据存储到处理中,将其刷新到磁盘上(?),将其名称传递给库,然后将其删除.

但我也希望这个过程相当安全:
1)文件必须重新创建,没有任何虚假数据(可能不是关键,但无论如何);
2)任何人,但我的过程中一定不能能够读取或从/到这个文件写(我希望库来处理我的实际数据,而不是虚假的数据有些wiseguy管理,堵塞);
3)在我完成这个文件之后,它必须被删除(好吧,如果有人TerminateProcess()我,我想没有什么可以做的,但仍然).

该库似乎使用非Unicode fopen()来打开给定的文件,所以我不太清楚如何处理所有这些,因为该程序旨在在Windows上运行.有什么建议?

c++ windows winapi temporary-files

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

使用boost :: filesystem遍历目录而不抛出异常

我有一个目录路径,我想遍历其所有子目录,顺便收集文件的路径.

namespace fs = boost::filesystem;

std::vector<fs::path> traverse_if_directory(fs::path& f) {
    std::vector<fs::path> result;
    if (fs::is_directory(f)) {      
        for (fs::recursive_directory_iterator it(f), eit; it != eit; ++it) {
            if (!fs::is_directory(it->path())) {
                result.push_back(it->path());
            }       
        }
    }
    else {
        result.push_back(f);
    }

    return result;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,在遍历的过程中,我偶然发现了一个我无权查看的目录,并且上面的代码抛出了.但显然,在这种情况下,这不是一个例外,我应该继续,跳过这个锁定的目录.

但是我该怎么做?

c++ boost boost-filesystem

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

如何在输入路径时启用自动补全?

回来后cmd.exe,我用了

set /P file=Enter path to the file: 
Run Code Online (Sandbox Code Playgroud)

从控制台输入文件路径(如果没有作为参数提供),我可以按Tab获取路径自动完成。但是,当我在 Powershell 中执行时

$file = Read-Host -Prompt "Enter path to the file"
Run Code Online (Sandbox Code Playgroud)

那么我无法使用Tab自动完成功能,它只是在输入中插入一个表格。有没有办法模拟以前的行为?

powershell user-input autocomplete

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

将折叠器提升到monad

我有功能smallStep :: Command -> Data -> Either StepError Data,我想bigStep :: [Command] -> Data -> Either StepError Data使用它,使用以下语义:

bigStep []   data   = Right data
bigStep c:cs data   = do
               data' <- bigStep cs data
               smallStep c data'
Run Code Online (Sandbox Code Playgroud)

这没什么好错的,但如果smallStep有类型Command -> Data -> Data,我会bigStep简单地实现bigStep commands data = foldr data smallStep commands.

当然,我也想在foldr这里使用.我该怎么做呢?foldM被取消foldl,倒车清单听起来不是一个非常好的主意.

monads haskell fold

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

Java通配符不允许类型转换

interface Message<T, L> {
}

interface Foo<T> {
    void frob(Message<T, Foo<?>> message);
}

class AuxiliaryFoo implements Foo<Integer> {
    @Override
    public void frob(Message<Integer, Foo<?>> message) { }
}

class MainFoo implements Foo<Object> {
    @Override
    public void frob(Message<Object, Foo<?>> message) {
        new AuxiliaryFoo().frob(new Message<Integer, MainFoo>() {});
    }
}
Run Code Online (Sandbox Code Playgroud)

Java编译器告诉我actual argument < anonymous Message< Integer, MainFoo >> cannot be converted to Message< Integer, Foo< ?>> by method invocation conversion.

为什么?

什么可以转换为Message <Integer,Foo <?>>?

java generics wildcard upcasting

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

QThread :: quit()会丢弃EventQueue中的所有事件吗?

main功能:

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);

    Worker w;
    QObject::connect(&w, SIGNAL(done()), &a, SLOT(quit()), Qt::QueuedConnection);
    w.start();

    int ret = a.exec();
    w.quit();
    w.wait();

    return ret;
}
Run Code Online (Sandbox Code Playgroud)

而且有Worker定义:

class Worker : public QThread
{
    Q_OBJECT
public:
    Worker(QObject *parent=0);
protected:
    void run();
protected slots:
    void process_request();
private:
    int ttl;
    Messenger* messenger;
}

Worker::Worker(QObject * parent)
    :QThread(parent),
    ttl(5),
    messenger(new Messenger(this))
{
    moveToThread(this);
    connect(messenger, SIGNAL(new_message()), SLOT(process_request()), Qt::QueuedConnection);
}

void Worker::finish(){
  quit();
  messenger->disconnectFromNetwork();   
}

void Worker::run(){
  messenger->connectToNetwork("somewhere");
  exec();
  emit done(); …
Run Code Online (Sandbox Code Playgroud)

qt multithreading qthread

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