1

アプリケーションコードから使用した場合に機能するラッパーを持つ静的ライブラリをリンクしていstd::coutますが、ライブラリの内部出力(まったく同じ方法で使用)のいずれも出力を表示しません。

重要ではないかもしれませんが、私はQtCreatorとqmakeプロジェクトファイルを使用してビルドしています。console私はアプリケーションに追加しましたCONFIG(そして静的ライブラリに対してもそれを試しましたが、効果はありませんでした)。

何がうまくいかない可能性があり、どうすればこれを修正できますか?ありがとう!

更新:まあ、ラッパーはこれの適応バージョンです

4

1 に答える 1

2

ラッパーは、std::cout暗黙的に別のライブラリに「到達」することはできません。リダイレクトについて考えたことはありcoutますか?srcのようなもの:

int main() { 
    std::streambuf* cout_sbuf = std::cout.rdbuf(); // save original sbuf 
    std::ofstream   fout("cout.txt"); 
    std::cout.rdbuf(fout.rdbuf()); // redirect 'cout' to a 'fout' 
    // ... 
    std::cout.rdbuf(cout_sbuf); // restore the original stream buffer 
}

そうすれば、出力を実行しているライブラリに関係なく、に供給されるデータを制御できstd::coutます(もちろん、ライブラリがstd::cout自分自身をリダイレクトしない限り)。

于 2011-02-17T18:25:43.013 に答える