小编Leo*_*Leo的帖子

Boost.Log - 如何配置文本接收器后端以附加到旋转的文件

我有一个sinks::text_file_backend水槽.说我已经有一些旋转的日志文件:

myLog001.log,myLog002.log等

我希望接收器继续写入最后一个旋转的文件 - myLog002.log,附加到其内容并从那里继续旋转.

我只是设法找到,keywords::open_mode = append但这只是附加在现有的myLogX文件之上,使它们更大,当然很难阅读.

可以在Boost.Log中完成吗?

c++ logging boost boost-log

22
推荐指数
1
解决办法
9486
查看次数

autoreload和package导致TypeError:super(type,obj):obj必须是类型的实例或子类型

我有python代码跨越几个文件,为了方便我打包,最后在my_package目录下有以下3个文件:

__init__.py
Run Code Online (Sandbox Code Playgroud)

内容:

from file1 import *
from file2 import *
Run Code Online (Sandbox Code Playgroud)

file1.py内容:

class Base(object):
    pass
Run Code Online (Sandbox Code Playgroud)

file2.py内容:

from file1 import Base 
class Derived(Base):
    def __init__(self):
        return super(Derived, self).__init__()
Run Code Online (Sandbox Code Playgroud)

然后我在IPython中执行:

>>>%autoreload 2
>>>import my_package
>>>t = my_package.Derived()
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但后来我对file2.py进行了更改,比如说添加了一个虚拟属性.现在我执行时:

>>>t = my_package.Derived()
>>>      2 class Derived(Base):
>>>      3     def __init__(self):
>>>----> 4         return super(Derived, self).__init__()
>>>      5 
>>>      6 dumm = 'asdf'
>>>
>>>TypeError: super(type, obj): obj must be an instance or subtype of type
Run Code Online (Sandbox Code Playgroud)

在我重新启动IPython控制台之前,这不会消失.为什么不自动重载正确处理?如果我将Base和Derived放入单个模块文件而不是包中,一切都有效.

python ipython

14
推荐指数
2
解决办法
4140
查看次数

异常HRESULT:0x800700C1执行c#应用程序时使用boost引用本机c ++库

我正在运行一个引用C++\CLI包装器项目的C#应用​​程序,该项目依次引用依赖于Boost 1.47库的本机c ++项目(链接到表单文件... vc100-mt-gd-1_47.lib)

所有库都是静态链接的,一切都编译得很好.执行C#应用程序会导致异常:"...不是有效的Win32应用程序.(HRESULT异常:0x800700C1)." 声称在某处遗漏了一些依赖.

C#应用程序配置为x86平台,而所有其他项目都是Win32,包括boost的二进制文件.

编辑:在添加使用Boost库之前,它的DID工作

我该如何追踪问题?

boost c++-cli visual-studio-2010

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

互锁读取64位变量

我有这个c ++代码(VS 2008):

LONGLONG res = InterlockedIncrement64(&m_longlong);
Run Code Online (Sandbox Code Playgroud)

沿着它运行,我希望能够从同一个变量中读取

LONGLONG res = InterlockedWHAT?64(&m_longlong)
Run Code Online (Sandbox Code Playgroud)

由于这是一个64位变量,简单的读取不被认为是线程安全的,但我找不到正确的InterlockedXXX.

我该如何阅读这个变量?

c++ multithreading

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

C++日志包装器设计

我想在我的应用程序中添加一个日志.我选择了一个日志库,但我希望能够切换到不同的库,而无需更改任何使用日志记录的代码.

因此,我需要一些足够灵活的日志包装器来充分利用任何underling日志库的功能.

有关这种包装设计的任何建议吗?

编辑:我在这个包装器中必须具备的一个功能是组件标记.我希望我的算法类在其日志行之前出现"X:",并且我的经理类出现"Y:".如何将这些标签传播到底层日志以及如何构建组件标签命名机制是这里的一个主要设计问题.

c++ logging

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

如何在图像中找到这种几何形状

现场

假设我有一个如上所述的场景图像.一种带有斑点的杆子,旁边可能是没有斑点的相似物体.如何找到由红色圆圈标记的斑点(二进制图像,指示哪些像素属于斑点).

注意,杆与blob一起可以任意旋转,并且尺寸也可以变化.

algorithm machine-learning image-processing computer-vision

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

c ++ stringstream to ostream to string

我希望能够做到:

foo(stringstream()<<"number = " << 500);
Run Code Online (Sandbox Code Playgroud)

编辑:单线解决方案至关重要,因为这是用于记录目的.这些将围绕代码.

在foo里面会将字符串打印到屏幕或类似的东西.

现在因为stringstream的运算符<<返回ostream&,foo的签名必须是:

foo(ostream& o);
Run Code Online (Sandbox Code Playgroud)

但是如何将ostream转换为字符串呢?(或char*).实现此用例的不同方法也是受欢迎的.

c++ stl

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