小编rke*_*erm的帖子

作为对象的类成员 - 指针与否?C++

如果我创建一个MyClass类并且它有一些私有成员说MyOtherClass,那么将MyOtherClass作为指针是否更好?将它作为存储在内存中的指针而不是指针也意味着什么?创建类时是否会创建对象?

我注意到QT中的示例通常在类成员时将类成员声明为指针.

问候

标记

c++ memory pointers class-design member

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

初始化VCProjectEngineObject时出现错误80040154(类未注册的异常)(Microsoft.VisualStudio.VCProjectEngine.dll)

我正在尝试运行工具,以便将Visual C++项目转换为makefile.我正在尝试转换项目的项目是用VS2008编写的,所以我在版本9中使用了对Microsoft.VisualStudio.VCProjectEngine.dll的引用.

它失败了:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();
Run Code Online (Sandbox Code Playgroud)

有以下例外:

检索具有CLSID {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3}的组件的COM类工厂由于以下错误而失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG)).

当试图用regsvr32注册VCProjectEngine.dll时,我收到一个错误,即找不到入口点DllRegisterServer.

任何的想法??

提前致谢.

c# com exception dllregistration

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

如何将PKCS#8格式的PEM私钥转换为传统格式?

从OpenSSL 1.0更改日志:

使PKCS#8成为私钥的默认写入格式,取代传统格式.此表单是标准化的,更安全,并且不包含隐式MD5依赖项.[史蒂夫汉森]

但是,我需要以前传统格式的私钥文件.是否可以将pem文件从PKCS#8转换为传统格式(使用OpenSSL.exe应用程序)?

非常感谢你!

openssl pem pkcs#8 private-key

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

如何以编程方式清除Kerberos票证缓存

有谁知道如何清除本地计算机上的Kerberos票证缓存 - 使用托管\ unmanaegd代码?

提前致谢!

c# c++ windows kerberos

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

增加特定套接字的TCP接收窗口

如何增加特定套接字的TCP接收窗口? - 我知道如何通过设置注册表项TcpWindowSize来为所有套接字执行此操作,但是如何针对特定的套接字执行此操作?

根据MSFT的文件,方式是

调用Windows套接字函数setsockopt,它基于每个套接字设置接收窗口.

但是在setsockopt中,提到了SO_RCVBUF:

指定为receive保留的每个套接字缓冲区空间总数.这与SO_MAX_MSG_SIZE无关,并且不一定与TCP接收窗口的大小相对应.

那有可能吗?怎么样?

谢谢.

c++ sockets windows winsock2

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

我该怎么做才能避免接收端的TCP Zero Window/TCP Window Full?

我有一个小应用程序,它通过网络将文件发送到位于Windows操作系统上的代理.

当此应用程序在Windows上运行时,一切正常,通信正常,文件全部复制成功.

但是,当这个应用程序在Linux上运行时(RedHat 5.3,接收器仍然是Windows) - 我在Wireshark中看到TCP Zero Window和TCP Window Full的网络跟踪消息每1-2秒出现一次.然后,代理会在几分钟后关闭连接.

Windows - Linux代码几乎相同,非常简单.唯一的非平凡操作是setsockopt,SO_SNDBUF和值0xFFFF.删除此代码没有帮助.

有人可以帮我解决这个问题吗?

编辑:添加发送代码 - 它看起来它正确处理部分写入:

int totalSent=0;
while(totalSent != dataLen)
{
    int bytesSent 
        = ::send(_socket,(char *)(data+totalSent), dataLen-totalSent, 0);

    if (bytesSent ==0) {
        return totalSent;
    }
    else if(bytesSent == SOCKET_ERROR){
#ifdef __WIN32
        int errcode = WSAGetLastError();
        if( errcode==WSAEWOULDBLOCK ){
#else
            if ((errno == EWOULDBLOCK) || (errno == EAGAIN)) {
#endif
            }
            else{
                if( !totalSent ) {
                    totalSent = SOCKET_ERROR;
                }
                break;
            }
        }
        else{
            totalSent+=bytesSent;
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

c++ network-programming tcp cross-platform

8
推荐指数
2
解决办法
2万
查看次数

Media Foundation捕获的视频是垂直镜像的

我正在使用Media Foundation IMFSourceReaderCallback实现从相机中抓取视频帧,然后使用OpenCV imshow来循环显示帧.
但是我把框架垂直翻转......
这是一个错误吗?我应该设置一些属性来避免这种情况吗?
这是我的代码:

初始化:

IMFAttributes* pDeviceAttrs, *pReaderAttrs;
        hr = MFCreateAttributes(&pDeviceAttrs, 1);
        if (FAILED(hr)) goto Exit;
        hr = pDeviceAttrs->SetGUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID);
        if (FAILED(hr)) goto Exit;
//...
// Correct source provider is activated through ActivateObject  
//
        hr = MFCreateAttributes(&pReaderAttrs, 2);
        if (FAILED(hr)) goto Exit;

        pReaderAttrs->SetUnknown(MF_SOURCE_READER_ASYNC_CALLBACK,(IUnknown*)this);
        pReaderAttrs->SetUINT32(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, TRUE); 

        hr = MFCreateSourceReaderFromMediaSource(pMediaSource, pReaderAttrs, &m_pReader);
        if (FAILED(hr)) goto Exit;
// Correct profile is set
Run Code Online (Sandbox Code Playgroud)

OnReadSample实现:

HRESULT hr = S_OK;
        LONG defaultStride = 0;
        LONG stride = 0;
        BYTE *pBuffer = …
Run Code Online (Sandbox Code Playgroud)

c++ video-capture ms-media-foundation

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

Sigating并将Linux代码移植到Windows

我正在尝试将caffe(为Linux开发)源代码移植到Windows环境中.问题出在sigaction结构处signal_handler.cppsignal_handler.h.源代码如下所示.我的查询是可以使用哪个库或代码替换来使其sigaction在Windows中正常工作.

///头文件

#ifndef INCLUDE_CAFFE_UTIL_SIGNAL_HANDLER_H_
#define INCLUDE_CAFFE_UTIL_SIGNAL_HANDLER_H_

#include "caffe/proto/caffe.pb.h"
#include "caffe/solver.hpp"

namespace caffe {

class SignalHandler {
 public:
  // Contructor. Specify what action to take when a signal is received.
  SignalHandler(SolverAction::Enum SIGINT_action,
                SolverAction::Enum SIGHUP_action);
  ~SignalHandler();
  ActionCallback GetActionFunction();
 private:
  SolverAction::Enum CheckForSignals() const;
  SolverAction::Enum SIGINT_action_;
  SolverAction::Enum SIGHUP_action_;
};

}  // namespace caffe

#endif  // INCLUDE_CAFFE_UTIL_SIGNAL_HANDLER_H_
Run Code Online (Sandbox Code Playgroud)

///源文件

    #include <boost/bind.hpp>
    #include <glog/logging.h>

    #include <signal.h>
    #include <csignal>

    #include "caffe/util/signal_handler.h"

    namespace {
      static volatile sig_atomic_t got_sigint = …
Run Code Online (Sandbox Code Playgroud)

c++ linux posix sigaction caffe

8
推荐指数
2
解决办法
7303
查看次数

如何在Windows中读取多会话DVD磁盘大小?

尝试使用GetDiskFreeSpaceEx()读取在多个会话中创建的磁盘大小仅提供上一个会话的大小.如何正确读取C/C++中所有会话的数量和大小?

谢谢.

c++ winapi diskspace cddvd

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

Caffe层创建失败

我试图在TEST阶段加载一个网络配置,首先是一个内存数据层,然后是一个卷积层.MemoryData层创建成功,但卷积层的创建在以下位置失败:

LOG(INFO) << "Creating layer " << param.name();
const string& type = param.type();
CreatorRegistry& registry = Registry();
CHECK_EQ(registry.count(type), 1) << "Unknown layer type: " << type
<< " (known types: " << LayerTypeList() << ")";
Run Code Online (Sandbox Code Playgroud)

印刷错误是:

F0519 14:54:12.494139 14504 layer_factory.hpp:77]检查失败:registry.count(t ype)== 1(0对1)未知图层类型:卷积(已知类型:MemoryData)

注册表只有一个条目,确实有MemoryData.当进入注册表创建函数时,它看起来像是第一个(也就是最后一个,因为这是一个单一的)来自

REGISTER_LAYER_CLASS(MemoryData);
Run Code Online (Sandbox Code Playgroud)

在memory_data_later.cpp中.

我看到REGISTER_LAYER_CLASS其他支持的图层的类似调用,但看起来它们从未被调用过.我该怎么解决?

谢谢!

c++ layer deep-learning caffe

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