TEST_GROUP_BASE を使用して共有基本クラスを作成することにより、コードの重複を削減しようとしました。この TEST_GROUP_BASE を複数のテスト クラスで使用しようとすると、「getwchar」と「putwchar」について不平を言うリンカ警告が表示されます。一貫性のない dll リンクと、これらの関数の複数の定義、および他の多くの「char」/ 'wchar' ペア (例: strchr/wcschr、strpbrk/wcspbrk)。TEST_GROUP_BASE マクロを使用するテスト ファイルを 1 つだけ含めると、リンカ エラーは表示されません。
基本クラスは、すべてのメンバー関数がインライン化された .h ファイルで TEST_BASE として定義されます。この .h ファイルは、共有 TEST_BASE を組み込むために使用される TEST_GROUP_BASE マクロを使用して、派生テスト ファイルに含まれます。私は何かを逃したことがありますか?
TEST_GROUP_BASE が使用されている例を見つけることができなかったので、構成の重要な部分を見逃したかどうかはわかりません。レガシ C コードをテストしていますが、c/c++ が正常にリンクされていることを示唆する単純なテストにパスするため、製品コードへのすべての参照は extern "C" 中かっこ内で行われます。
誰かが考えられる原因を提案したり、TEST_GROUP_BASE が他の場所でどのように使用されているかを示すオープンソースの例を教えてもらえますか?
開発環境はVS2010です。