小编Dim*_*ima的帖子

可以禁用"应用程序错误"对话框吗?

我使用Hudson作为持续集成服务器来测试C/C++代码.不幸的是,我有一个导致内存损坏的错误,所以在某些Windows机器上,我有时会得到一个"应用程序错误"对话框,说明一条指令引用了无法读取的内存.弹出此对话框并基本挂起测试运行,因为它需要手动干预.

有没有办法阻止此对话框出现,以便测试运行只是失败并在Hudson中报告?

是否可以自动生成小型转储而不是显示对话框?

c++ memory windows debugging build-automation

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

如何使用类型列表

我读到了"现代C++设计"中的类型列表,我将其理解为某种类型的联合.通过在类型列表中放置不同的,不相关的类型,可以使用它一次表示多个类型,而无需继承.我在原始类型的一些简单函数中测试了类型列表,但我无法使它们中的任何一个工作.

有人可以告诉我,如果我对类型列表的解读是正确的,并给出一个简单的现实世界的例子,如何在每天的平均代码中使用类型列表?提前致谢.

顺便说一下,我正在使用Windows和Visual Studio 2005及其编译器.

编辑:我的例子不见了,我在vs中使用沙箱项目来测试这些东西.但它很安静,类似于Dobbs教程中的代码:

void SomeOperation(DocumentItem* p)
{
    if (TextArea* pTextArea = dynamic_cast<TextArea*>(p))
    {
        ... operate on a TextArea object ...
    }
    else if (VectorGraphics* pVectorGraphics =
        dynamic_cast<VectorGraphics*>(p))
    {
        ... operate on a VectorGraphics object ...
    }
    else if (Bitmap* pBitmap = dynamic_cast<Bitmap*>(p))
    {
        ... operate on a Bitmap object ...
    }
    else
    {
        throw "Unknown type passed";
    }
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我没有看到继承能够做到这一点的优势.动态转换不适用于基本类型.是否可以将其用作返回值,如:

typedef Typelist<int, string> mylist
mylist myfunction() {
    if(foo == bar)
        return 5;

    return "five";
}
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio-2005 typelist policy-based-design

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

使用成员函数指针与交换机的成本是多少?

我有以下情况:


class A
{
public:
    A(int whichFoo);
    int foo1();
    int foo2();
    int foo3();
    int callFoo(); // cals one of the foo's depending on the value of whichFoo
};
Run Code Online (Sandbox Code Playgroud)

在我当前的实现中,我保存whichFoo构造函数中的数据成员的值,并使用switchin callFoo()来决定要调用哪个foo.或者,我可以switch在构造函数中使用a 来保存指向fooN()要调用的权限的指针callFoo().

我的问题是,如果A类的一个对象只构造一次,那么哪种方式更有效,而callFoo()被称为非常多次.所以在第一种情况下我们有多个switch语句的执行,而在第二种情况下只有一个开关,并且使用指向它的指针多次调用成员函数.我知道使用指针调用成员函数比直接调用它要慢.有人知道这个开销是多少还是少于一个switch

澄清:我意识到你从来没有真正知道哪种方法可以提供更好的性能,直到你尝试并计时.但是,在这种情况下,我已经实施了方法1,并且我想知道方法2是否可以至少在原则上更有效.它似乎可以,现在我有理由去实现它并尝试它.

哦,我也喜欢方法2更好的审美原因.我想我正在寻找实现它的理由.:)

c++ function-pointers

12
推荐指数
2
解决办法
5253
查看次数

3D基本矩阵的对应关系

在MATLAB中,我使用归一化的八点算法计算了基本矩阵(两个图像).由此我需要对3D空间中的相应图像点进行三角测量.根据我的理解,要做到这一点,我需要旋转和翻译图像的相机.最简单的方法当然是首先校准相机然后拍摄图像,但这对我的应用来说太紧张了,因为它需要这个额外的步骤.

这样我就可以进行自动(自拍)相机校准.我看到了捆绑调整的提及,但是在"邀请3D视觉"中它似乎需要初始平移和旋转,这让我觉得需要校准相机或者我的理解不足.

所以我的问题是如何自动提取旋转/平移,以便我可以将图像点重新投影/三角测量到3D空间.任何MATLAB代码或伪代码都会很棒.

math matlab linear-algebra computer-vision matlab-cvst

12
推荐指数
2
解决办法
9876
查看次数

什么导致在Tomcat中使用EOF或isHexDigit消息的java.io.CharConversionException?

这个异常通过简单的'getParameter()'调用来加密我们的生产catalina日志.

WARNING: Parameters: Character decoding failed. Parameter skipped.

java.io.CharConversionException: EOF
    at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:82)
    at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:48)
    at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:411)
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:393)
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:509)
    at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:266)
    at org.apache.catalina.connector.Request.parseParameters(Request.java:2361)
    at org.apache.catalina.connector.Request.getParameter(Request.java:1005)
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:353)
    at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)

或者有时:

java.io.CharConversionException: isHexDigit
    at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:87)
    at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:48)
    at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:411)
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:393)
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:509)
    at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:266)
    at org.apache.catalina.connector.Request.parseParameters(Request.java:2361)
    at org.apache.catalina.connector.Request.getParameter(Request.java:1005)
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:353)
    at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)

encoding tomcat exception

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

弄透乳胶纸

许多期刊要求提交盲文版本的论文.盲目版本通常会删除:

  • 作者名单
  • 对作者工作的任何引用

如何在不手动操作的情况下创建手稿的盲版?

latex citations

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

如何从Cygwin构建Visual Studio 9.0解决方案并获得构建输出?

我正在尝试使用Cygwin在Windows上设置自动构建系统.除此之外,它还需要能够构建多个Visual C++解决方案.我有一个脚本来设置devenv所需的环境变量,如果我在bash中输入'devenv'它会调出Visual Studio IDE.到目前为止没问题.

我也可以通过输入从cygwin的bash提示符中构建一个解决方案

$ devenv mysolution.sln /build Debug

问题是它没有向我显示构建输出.实际上,它甚至没有告诉我构建是否成功.命令完成后,我收到提示.然后我可以进入输出目录,检查是否创建了可执行文件,但是对于构建系统,我希望能够查找错误.

我究竟做错了什么?当我在windows shell中运行devenv时,我可以看到调试输出,但不是在cygwin中.它被发送到哪里,我该如何取回?

c++ build-automation cygwin visual-studio-2008

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

用于图像的高斯滤波的最佳sigma?

当将高斯模糊应用于图像时,通常西格玛是参数(示例包括Matlab和ImageJ).

怎么知道sigma应该是什么?有没有数学方法来找出最佳sigma?就我而言,我在图像中有一些与背景相比明亮的对象,我需要在计算上找到它们.我将应用高斯滤波器使这些物体的中心更加明亮,这有助于找到它们.如何确定最佳sigma?

parameters image-processing gaussian filter

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

如何在Matlab中获取MSER的分层组件树?

使用detectMSERFeatures从Matlab中的图像中找到最大稳定的极值区域(MSER).

是否有任何补丁或方法可以从Matlab 获取分层MSER组件树

当Matlab计算区域时,无论如何都会生成此树 - 它只返回每个区域树中最"稳定"的组件.由于这个树已经存在,我正在寻找从Matlab库中向用户代码公开的方法,这样可以隐藏这个部分,并且只提供最终的"最大稳定"区域.

任何事情都是可以接受的 - 修改Matlab内置代码,补丁,黑客等等.(我意识到OpenCV有这样的补丁,但是我试图避免移植到OpenCV,因为大多数其他程序都是用Matlab编写的).

编辑:(从原来的分层MSER论文)

检测到MSER MSER树

Detected MSERs(左), MSER Tree(右)

matlab image-processing computer-vision matlab-cvst

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

根据评级为用户生成"邻居"

我正在寻找技术来为我正在工作的网站上的用户生成"邻居"(有相似品味的人); 类似于last.fm的工作方式.

目前,我有一个可以发挥作用的用户的兼容功能.它对用户进行排名1)评级相似的项目2)同样评价该项目.该函数重点高于2,如果在生成"邻居"时我只使用其中一个因素,这将是最重要的.

我的一个想法是只计算每个用户组合的兼容性,并选择最高评级的用户作为用户的邻居.这样做的缺点是,随着用户数量的增加,这个过程需要花费很长时间.对于仅1000个用户,它需要对兼容性功能的1000C2(0.5*1000*999 = = 499 500)调用,这在服务器上也可能非常繁重.

所以我正在寻找任何建议,文章的链接等关于如何最好地实现这样的系统.

theory cluster-analysis neighbours

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