小编Vio*_*ffe的帖子

如何动态创建一个按钮并为其指定styles.xml中定义的样式?

我需要动态创建一个样式按钮.我想也许我应该这样做:

XmlPullParser parser = m_context.getResources().getXml(R.style.Button_Plain);
buttonStyle = Xml.asAttributeSet(parser);
Button btn = new Button (m_context, buttonStyle);
Run Code Online (Sandbox Code Playgroud)

getXml抛出异常"请求资源失败,因为它很复杂".有什么简单的方法可以做我需要的吗?

user-interface android

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

使用-mavx和-mfma编译时,防止GCC自动使用AVX和FMA指令

如何使用AVX和FMA指令禁用自动矢量化?我仍然希望编译器自动使用SSE和SSE2,而不是FMA和AVX.

我的代码使用AVX检查其可用性,但GCC在自动矢量化时不会这样做.因此,如果我-mfma在Haswell之前编译并在任何CPU上运行代码,我会得到SIGILL.如何解决这个问题?

c++ gcc vectorization avx fma

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

进程启动异常“文件名或扩展名太长”,是否是由 arg 行而不是文件名引起的?

我正在使用 System.Process 来启动一个外部程序,但我刚刚收到一个“文件名或扩展名太长”异常。但是,我相信文件名很好,但参数是一个很长的字符串(33,000 个符号)。该字符串会导致异常吗?

c# process

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

Linux 中 ld 到没有版本信息的库

编译 C/C++ 程序时,有没有一种方法可以链接到 Linux 中的库导出,而无需 ld 嵌入版本信息?

我正在构建一个链接到 Firefox 中的 libxul.so 的共享对象(它是 Firefox 二进制扩展)。我想构建我的共享对象并链接到 libxul.so,以便在运行时加载程序不关心 libxul.so 是什么版本。

现在,我的输出 .so 文件具有以下依赖项:

readelf -V myext.so
  0x0080: Version: 1  File: libxul.so  Cnt: 1
  0x0090:   Name: xul24.0  Flags: none  Version: 9
Run Code Online (Sandbox Code Playgroud)

(请注意,这取决于版本“xul24.0”)

导出的函数在 Firefox 版本之间不会发生变化。所以,我想删除这个版本指令。

当尝试加载到 Firefox 26 时,LD_DEBUG=file 会出现以下错误:

/usr/lib/firefox/libxul.so: error: version lookup error:
version `xul24.0' not found (required by /.../myext.so) (fatal)
Run Code Online (Sandbox Code Playgroud)

对于 Firefox 26 版本的 libxul.so,版本为'xul26'.

那么,如何防止 ld 将版本信息嵌入到我的库中呢?

linker ld

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

从QByteArray删除第一个字节

我想编写一个将QByteArray输入到该函数的函数。我想从接收数据中删除一些标头,并将其存储到全局QByteArray中。

void abc::CopyData(const QByteArray &data)
{
    switch(RequestPacketCount)
    {
        case REQUEST_FIRST_PACKET:
        {
            ByteArrayData = data;
        }
            break;
        case REQUEST_SECOND_PACKET:
        case REQUEST_THIRD_PACKET:
            ByteArrayData.append(data);
    }
}
Run Code Online (Sandbox Code Playgroud)

我要删除“ n”号。从“数据”开始的字节数,并将剩余数据存储到“ ByteArrayData”

提前致谢。

qt qbytearray

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

在此类声明中声明一个类的实例并就地初始化它

这就是我现在拥有的:

class CColorf
{
public:
    CColorf();
    CColorf(float r, float g, float b, float a = 1.0f);

public:
    float r, g, b, a;

// predefined colors
    // rgb(0.0, 0.0, 1.0)
    static const CColorf blue;
};
Run Code Online (Sandbox Code Playgroud)

它适用blue于ccolorf.cpp中的定义,如下所示:

CColorf const CColorf::blue = CColorf(0.0f, 0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)

这就是我想做的事情:

class CColorf
{
    ...

// predefined colors
    // rgb(0.0, 0.0, 1.0)
    static const CColorf blue = CColorf(0.0f, 0.0f, 1.0f);
};
Run Code Online (Sandbox Code Playgroud)

但它会产生编译错误:

具有类内初始化程序的静态数据成员必须具有非易失性const整数类型

有没有办法避免在这里需要单独的声明和定义?

c++ c++11

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

在 C++ 中,为什么可以强制转换为派生类型的引用?

准确地说,为什么下面的程序可以B b = (B&) a编译并运行,而B b = (B) a不能?

#include <iostream>
using namespace std;

class A {public: void f(){ cout<<"A"<<endl;} };

class B : public A { public: void f(){cout<<"B"<<endl;} };

void g(A a){  B b = (B&) a; b.f(); }

int main() {
    B b; g(b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是否有关于转换为派生类型以及我在这里缺少的参考的内容?如果我只是强制转换为 B,则会出现编译时错误:构造函数 B(A a) 不存在。

c++ inheritance casting reference derived-instances

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

如何创建一个初始化具有特定值的成员容器的编译时静态类类型?

这基本上就是我想要的:

struct Item{
   int id;
   std::string s;   
};

template <???>
struct StaticContainer
{
    static const std::deque<Item> _items;
};

template <???>
const std::deque<Item> StaticContainer<>::_items {???};
Run Code Online (Sandbox Code Playgroud)

不必是a deque,我只想将可迭代的值列表与a关联起来type.所以我可以做类似的事情

typedef StaticContainer<{{1, "a", {2, "b"}, {3, "c"}}> T1;
typedef StaticContainer<{{0, "e"}, {-1, "f"}, {-2, "g"}}> T2;

int main() {
   T1 t1;
   T2 t2;
   t1 = t2; // Error: incompatible types

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

通常情况下,它会让事情变得动态,但是很明显,要让一些动态的东西成为编译时也是如此.我不想使用继承,多态和类似的运行时,开销诱导方法.

c++ templates c++11

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

在销毁 DLL 中的静态对象(但不是 .exe)之前,工作线程会被强制终止吗?

考虑以下代码。以下所有内容均使用 v140 C++ 运行时在 Visual Studio 2015 中编译和执行:

#include <thread>
#include <atomic>
#include <sstream>

#include <Windows.h>

struct StaticThreadTest
{
    ~StaticThreadTest()
    {
        _terminationRequested = true;
        if (_thread.joinable())
            _thread.join();

        std::ostringstream ss;
        ss << "Thread finished gracefully: " << _threadFinishedGracefully << "\n";
        OutputDebugStringA(ss.str().c_str());
    }

    void startThread()
    {
        _thread = std::thread([&]() {
            while (!_terminationRequested);

            _threadFinishedGracefully = true;
        });
    }

    std::thread _thread;
    std::atomic<bool> _terminationRequested {false};
    std::atomic<bool> _threadFinishedGracefully {false};
};

static StaticThreadTest thread;

int main()
{
    thread.startThread();

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

它按预期工作 - 打印“线程正常完成:1”并且应用程序退出。

但是,如果我将此代码移至 DLL(创建一个空 DLL,从中导出一个函数,将该对象放置 …

c++ windows multithreading c++11 visual-studio-2015

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

如何禁用urlretrieve的SSL验证?

围绕SO提出了类似的问题,但是解决方案是针对的urlopen。该函数采用一个可选context参数,该参数可以接受预配置的SSL上下文。urlretrieve没有此参数。如何在接下来的通话中绕过SSL验证错误?

urllib.request.urlretrieve(
    "http://sourceforge.net/projects/libjpeg-turbo/files/1.3.1/libjpeg-turbo-1.3.1.tar.gz/download", 
    destFolder+"/libjpeg-turbo.tar.gz")
Run Code Online (Sandbox Code Playgroud)

python urllib2

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