1

先生からのブーストテストに問題があります。プロジェクトをデバッグしていると、次の行でエラーが発生します。

    BOOST_AUTO_TEST_SUITE_END()

例外は次のとおりです。

homework2.exe の 0x7521b727 (KernelBase.dll): 0xC0020001: 文字列バインディングが無効です。

私は Visual Studio 2010 Ultimate と Win7 Professional (すべての更新プログラムを含む) を使用しています。例外がスローされたときにゾンビ コンソール ウィンドウが表示されるため、このバグは非常に厄介です。

私の英語でごめんなさい;)

編集:私のテストコード

#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#include <string>

BOOST_AUTO_TEST_SUITE( easy_stringtest)

BOOST_AUTO_TEST_CASE( length_test)
{
    std::string s("xyz");
    BOOST_CHECK(s.length() ==3);
}

BOOST_AUTO_TEST_CASE( same)
{
    std::string s("abc");

    BOOST_CHECK(s == "abc");
}


BOOST_AUTO_TEST_SUITE_END()

編集:私は自分の過ちを犯しました... IDEオプション/clrがオンになり、オフにするとエラーは発生しません:D

4

1 に答える 1

0

インクルードを変​​更しました。私の先生は、問題は私のバイナリにあると私に言いました。

他の誰かが同じ問題を抱えている場合、ここで解決策があります:

新しいコード:

#define BOOST_TEST_MAIN
#include <boost/test/included/unit_test.hpp>
#include <string>

BOOST_AUTO_TEST_SUITE( easy_stringtest)

BOOST_AUTO_TEST_CASE( length_test)
{
    std::string s("xyz");
    BOOST_CHECK(s.length() ==3);
}

BOOST_AUTO_TEST_CASE( same)
{
    std::string s("abc");

    BOOST_CHECK(s == "abc");
}


BOOST_AUTO_TEST_SUITE_END()
于 2010-11-09T10:36:11.473 に答える