小编Vio*_*ffe的帖子

OpenSSL:无法在VC++ 2010中构建

我已经下载了最新的OpenSSL源代码包.我想用VC++ 2010 x64构建它.按照说明似乎不起作用.配置步骤看起来很好,但随后:

C:\ 1> MS\do_win64a.bat

C:\ 1> perl util\mkfiles.pl 1> MINFO

C:\ 1> perl ms\uplink.pl win64a 1> ms\uptable.asm

C:\ 1> ml64 -c -Foms\uptable.obj ms\uptable.asm Microsoft(R)宏汇编程序(x64)版本10.00.30319.01版权所有(C)Microsoft Corporation.版权所有.

组装:ms\uptable.asm

C:\ 1> perl util\mk1mf.pl no-asm VC-WIN64A 1> ms \nt.mak在util\mk1mf.pl第907行没有关于crypto\md4的规则.

C:\ 1> perl util\mk1mf.pl dll no-asm VC-WIN64A 1> ms \ntdll.mak在util\mk1mf.pl第907行没有关于crypto\md4的规则.

C:\ 1> perl util\mkdef.pl 32 libeay 1> ms\libeay32.def

C:\ 1> perl util\mkdef.pl 32 ssleay 1> ms\ssleay32.def

Win 32(do_ms)输出看起来有点不同,但"在util\mk1mf.pl第907行没有加密\ md4的规则"仍然存在.

任何人都可以帮助我构建库或共享vc2010构建的二进制文件吗?或者是库的VS2010项目文件?

c++ openssl visual-c++-2010

11
推荐指数
2
解决办法
6801
查看次数

通过union union访问__m128变量的字节?

考虑这个变量声明:

union {
        struct {
            float x, y, z, padding;
        } components;
        __m128 sse;
    } _data;
Run Code Online (Sandbox Code Playgroud)

我的想法是通过赋值x,y,z领域,执行SSE2计算,并通过读取结果x,y,z.不过,我对它是否合法有些怀疑.我关心的是对齐:MSDN说__m128变量自动对齐到16字节边界,我想知道我的联盟是否可以破坏这种行为.这里还有其他陷阱需要考虑吗?

c++ sse unions

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

如何实现std :: has_virtual_destructor?

如何std::has_virtual_destructor实施和类似的检查?我已经尝试type_traits在Visual Studio中查看标题,但是有太多的宏和模板甚至可以得到一个想法.这种检查可以用任何合理简单的形式表达吗?我很想知道它的工作原理,因为现在我不知道.

c++ type-traits c++11

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

std :: enable_shared_from_this:是否允许在析构函数中调用shared_from_this()?

#include <memory>
#include <iostream>

struct A : public std::enable_shared_from_this<A>
{
    ~A()
    {
        auto this_ptr = shared_from_this(); // std::bad_weak_ptr exception here. 
        std::cout << "this: " << this_ptr;
    }
};

int main()
{
    auto a = std::make_shared<A>();
    a.reset();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我打电话时遇到std::bad_weak_ptr异常shared_from_this().它是按设计的吗?是的,它可能是危险的,因为在析构函数返回后不能使用此指针,但我没有看到为什么在技术上不可能在此处获取指针的原因,因为共享指针对象显然仍然存在并且可以是用过的.有没有办法绕过这个,没有写我自己的enable_shared_from_this模拟(我宁愿做不到)?

c++ destructor shared-ptr weak-ptr c++11

11
推荐指数
2
解决办法
3297
查看次数

为什么不能分配给自己缺少复制操作符的对象向量?

我有一个可复制构造的结构向量,但不可赋值:

struct Struct
{
    inline Struct(const std::string& text, int n) : _text(text), _n(n) {}
    inline Struct(const Struct& other) : _text(other._text), _n(other._n) {}

    const std::string _text;
    const int _n;

    Struct& operator=(const Struct&) = delete;
};
Run Code Online (Sandbox Code Playgroud)

一切都很好.事实上,我甚std::vector<Struct>至可以将值作为函数的返回值传递.然而,这失败了:

std::vector<TextFragment> v1, v2;
v2 = v1;
Run Code Online (Sandbox Code Playgroud)

当然,错误是:

错误:C2280:'Struct&Struct :: operator =(const Struct&)':尝试引用已删除的函数

我不明白为什么它试图调用它.这是否是某种优化以避免重新分配向量的内存块?

c++ vector stdvector c++11

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

有没有理由不使用calloc而不是malloc?

calloc()几天我刚刚了解了C 功能.看了它的描述和它有什么不同malloc(1,2),我的想法是,作为非嵌入式程序员,我应该总是使用calloc().但情况确实如此吗?

我有一个保留是访问calloc()-ed内存的额外延迟,但我也想知道是否有时候切换malloc()calloc()将以更严重的方式破坏程序.

PS零初始化方面calloc()对我来说非常清楚.我有兴趣了解的是calloc()malloc()- 懒惰内存分配之间的另一个区别calloc().如果您要专注于内存初始化方面,请不要发布答案.

c c++ malloc calloc dynamic-allocation

11
推荐指数
2
解决办法
1939
查看次数

在Visual Studio C++中打印每个文件的编译时间

如何在Visual Studio 2005项目中创建一个表来获取每个c ++文件的编译时间.

visual-studio-2005 visual-studio

10
推荐指数
2
解决办法
2224
查看次数

10
推荐指数
2
解决办法
8679
查看次数

#include <cmath> vs C++程序中的#include <math.h>

在C++程序中包含前者而不是后者有哪些考虑因素?我总是包括math.h,stdlib.h从不cmath,cstdlib等等.我不明白后者甚至存在的原因,有人可以请赐教吗?

c c++ coding-style include header-files

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

使用clang在Mac OS X上创建std :: thread时出错:"尝试使用已删除的函数"

考虑我的测试代码:

#include <thread>

class Foo {
public:
    void threadFunc() {}
    void startThread() {
        _th = std::thread(&Foo::threadFunc, *this);
    }
private:
    std::thread _th;
};

int main(int argc, char *argv[])
{    
    Foo f;
    f.startThread();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是它产生的错误:

../untitled/main.cpp:13:14: warning: unused parameter 'argc' [-Wunused-parameter]
int main(int argc, char *argv[])
             ^
../untitled/main.cpp:13:26: warning: unused parameter 'argv' [-Wunused-parameter]
int main(int argc, char *argv[])
                         ^
In file included from ../untitled/main.cpp:1:
In file included from /usr/bin/../lib/c++/v1/thread:90:
In file included from /usr/bin/../lib/c++/v1/__functional_base:15:
/usr/bin/../lib/c++/v1/type_traits:1372:12: error: call to implicitly-deleted copy …
Run Code Online (Sandbox Code Playgroud)

macos multithreading clang c++11 stdthread

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