小编Sim*_*Sim的帖子

如何将nmake用于C++项目

如何使用与GNU Make一样的nmake设置项目?

我有一个我想保留的特定文件夹结构,如果我能告诉cl将obj文件放在某个构建文件夹中,我会很高兴.

我没有找到任何实际描述真实项目设置的教程.我在很短的现实的例子或实际处理我的问题作为一个教程链接的迫切需要是不是甚至接近做任何真正的解释.

c++ windows nmake

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

如何使用cppunit显示testmethod名称

如何从点更改cppunit的输出,指示对测试的实际名称进行了多少次测试,或者至少只是给测试调用者的字符串,如计算点和猜测哪些测试 - 它所代表的功能是非常无效的,如果是分段错误,它实际上会杀死整个程序.我确实找到了在断言失败的情况下更改错误输出的参考,但在一般输出上没有任何内容.

我的Testclass的套件功能:

static CppUnit::Test *suite() {
                CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite( "Map Parser" );
                //string to state
                suiteOfTests->addTest( new CppUnit::TestCaller<Parser_test>("string to state I",&Parser_test::test_string_to_state_I));
                ....
                return suiteOfTests;
}
Run Code Online (Sandbox Code Playgroud)

Main.cpp的

CppUnit::TextUi::TestRunner runner;
runner.addTest( Parser_test::suite() );
runner.run();
Run Code Online (Sandbox Code Playgroud)

我希望有这样的输出:

string to state I : OK
string to state II : OK
...
Run Code Online (Sandbox Code Playgroud)

然后,我能够确定程序何时由于不可捕获的异常(如SegFault)而崩溃.

但此刻我的ouptut看起来像这样:

...........
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

c++ cppunit

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

如何告诉 htmlunit 忽略某些错误

我目前正在试用 HtmlUnit。我想填写一个表格,然后提交。但这会导致错误,这似乎是由无法访问的文件引起的,从而导致连接重置被抛出。我怎样才能抑制这一点,因为考虑到整个网站的加载过程,这并不重要?不过,它似乎不会影响程序,我只是想让它静音。

Apr 05, 2012 12:25:13 PM com.gargoylesoftware.htmlunit.html.HtmlPage loadExternalJavaScriptFile
Schwerwiegend(severe): Error loading JavaScript from [*link*].
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:149)
    at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:110)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:264)
    at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:252)
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281)
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:247)
    at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:219)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:298)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:776)
    at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:152)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1439)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1358)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1008)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:950)
    at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:349)
    at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:230)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:642)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.access$400(JavaScriptEngine.java:79)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:590)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:499)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:474) …
Run Code Online (Sandbox Code Playgroud)

java htmlunit

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

如何保证从sbcl中彻底退出

我通过一个使用必要参数调用sbcl的shellscript来调用我的common-lisp程序,我必须保证无论如何实际程序完成调用都会以some/none输出结束.

我目前的解决方案如下:

sbcl --eval "(unwind-protect 
               (handler-case 
                   (progn 
                      (declaim #+sbcl(sb-ext:muffle-conditions style-warning))
                      (let ((*standard-output* (make-broadcast-stream)))
                        (ql:quickload \"module\"))
                   (eval (read-from-string \"(package:start)\"))) ;this starts the program
                  (error (err) 
                                (FORMAT t \"Something went really wrong:~a~%\" err) 
                                (sb-ext:exit))) 
              (sb-ext:exit))"
Run Code Online (Sandbox Code Playgroud)

但在以下两个szenarios它不会工作:

sbcl --eval "(unwind-protect 
                 (handler-case 
                    (progn 
                       (define-condition bad () ())
                       (error 'bad)) 
                   (error (err) 
                                 (FORMAT t \"Something went really wrong:~a~%\" err) 
                                 (sb-ext:exit))) 
                 (sb-ext:exit))"

sbcl --eval "(unwind-protect 
                 (handler-case 
                     (progn 
                       (labels ((rek () (rek)))
                         (rek)))
                   (error (err) 
                                 (FORMAT t \"Something went really wrong:~a~%\" err) 
                                 (sb-ext:exit))) 
               (sb-ext:exit))"
Run Code Online (Sandbox Code Playgroud)

我现在想知道是否有另一种解决方案可以捕获被调用程序的任何可能结果并确保sbcl调用将退出干净?

对于第一种情况,一般情况下没有指明要捕获的东西,可能会做出这笔交易.第二种情况必须能够处理导致低级别debuger被调用的错误/错误.

sbcl common-lisp

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

bitsets二进制AND操作

我写了以下几行:

std::bitset<4> bitvec;  //bitset 0000
std::bitset<4> addition; //bitset 0000

addition.set(0); //setting the least significant bit

std::cout << addition << std::endl; //output 0001
std::cout << std::endl;

for(int x = 0; x != 16; ++x) { //addition loop
    std::cout << bitvec << std::endl; //output
    bitvec &= addition; //binary AND
}

std::cout << std::endl;
Run Code Online (Sandbox Code Playgroud)

我期望输出为:

0000
0001
0010
0011
0100
0101
....
Run Code Online (Sandbox Code Playgroud)

但循环只输出'0000'.我错过了什么基本概念?

c++ bitset

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

如何使用 cl.exe 静态链接库以使用 SHGetSpecialFolderPath

我用的SHGetSpecialFolderPath是WINAPI的功能,也是用windows VisualExpressC++编译器(cl.exe)来编译的。但是在链接阶段时,我收到此错误:

error LNK2019: unresolved external symbol __imp___SHGetSpecialFolderPathA@16 referenced in function _main
Run Code Online (Sandbox Code Playgroud)

我想我需要链接Shell32.lib,这是正确的,我将如何做到这一点,让我的程序在另一个系统上运行,甚至可能是 XP 而不是 7,而无需重新编译它?

c++ winapi

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

正确使用这个 - >

this一个班级的自我引用的正确用法是什么?

我有时在一个方法中使用它来清除所使用的变量是一个成员变量而不是在方法中声明的变量,但另一方面我想知道这是否是一个很好的理由,因为我认为你应该总是代码(和注释)以一种自我解释的方式,因此会不必要地使用this不必要的和另一个原因来反对它,那就是你实际上生成了比需要更多的代码.

void function() {
  while(i != this->length) //length is member var
     /*do something*/
}
Run Code Online (Sandbox Code Playgroud)

我经常遇到的另一种使用它的方法是内部构造函数(主要是Java),因为参数确实与必须初始化的成员变量具有相同的名称.由于Primer声明这是坏代码,我不这样做,但另一方面,我看到使用与member-vars相同的名称作为参数名称清除了它们的用途.

C++
Constructor::Constructor(int size,int value) : this->size(size),
                                               this->value(value) {};

Java
Constructor(int size,int value) {
  this->size = size;
  this->value = value;
}
Run Code Online (Sandbox Code Playgroud)

我希望实际上有一个规则考虑两种语言(Java/c ++),如果不是我会重新考虑c ++,因为这是我更感兴趣的.

c++ java this

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

如何使用drakma下载和保存文件:http-request和flexistreams

我正在尝试下载并保存PDF,但在使用EOF-Error写入时失败.这样做的正确方法是什么?

(with-open-file (file "/home/*/test.pdf"
                      :direction :io
                      :if-does-not-exist :create
                      :if-exists :supersede
                      :element-type '(unsigned-byte 8))
  (let ((input (drakma:http-request "http://www.fractalconcept.com/ex.pdf"
                                    :want-stream t)))
    (awhile (read-byte input)
      (write-byte it file))
    (close input)))
Run Code Online (Sandbox Code Playgroud)

common-lisp binary-data

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

放松保护 - 它是如何工作的

我正在使用sbcl 1.0.57.0并且想要启动一个程序,通过--eval该程序应该生成一些输出,但是如果存在未被捕获的错误,它将退出.

我认为最简单的方法是使用unwind-protect:

(unwind-protect (error 'simple-error) 
  (progn (FORMAT t "IAMREACHED~%") (sb-ext:exit)))
Run Code Online (Sandbox Code Playgroud)

至于(sb-ext:exit)应executet柜面有未被捕获的错误.

但事实并非如此!

* (unwind-protect (error 'simple-error) 

       (progn (FORMAT t "IAMREACHED~%") (sb-ext:exit)))

    debugger invoked on a SIMPLE-ERROR in thread
    #<THREAD "main thread" RUNNING {1002979193}>:
    (A SIMPLE-ERROR was caught when trying to print *DEBUG-CONDITION* when entering
    the debugger. Printing was aborted and the SIMPLE-ERROR was stored in
    SB-DEBUG::*NESTED-DEBUG-CONDITION*.)

    Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

    restarts (invokable by number or by possibly-abbreviated name): …
Run Code Online (Sandbox Code Playgroud)

sbcl common-lisp

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

如何检查给定变量值是否为string类型

基本上我会说你必须使用(typep var 'string-type),但据我所知,没有像字符串这样的类型.

通过类型结果确定类型

(type-of "rowrowrowyourboat")
> (SIMPLE-ARRAY CHARACTER (17))
Run Code Online (Sandbox Code Playgroud)

这是一种我能用通用方式寻找的类型,因为寻找SIMPLE-ARRAY不会有任何好处:

(typep "rowrowrowyourboat" 'simple-array)
> t

(typep (make-array 1) 'simple-array)
> t
Run Code Online (Sandbox Code Playgroud)

并且使用直观的动态确定示例字符串类型的hack也没有任何好处,因为它们的长度不一样(大多数时候)

(typep "rowrowrowyourboat" (type-of "string"))
> nil
Run Code Online (Sandbox Code Playgroud)

所以我想知道检查给定变量是否为string类型的规范方法是什么?

string types sbcl common-lisp

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

标签 统计

c++ ×5

common-lisp ×4

sbcl ×3

java ×2

binary-data ×1

bitset ×1

cppunit ×1

htmlunit ×1

nmake ×1

string ×1

this ×1

types ×1

winapi ×1

windows ×1