ロギングクラスを含むWindowsDLLライブラリを作成しています。そのクラスのlog関数は、テスト目的で次のようにfprintfを呼び出すだけです。
fprintf(stderr、 "デバッグ:%s \ n"、 "こんにちは");
この呼び出しは、他のプロジェクト(ライブラリを使用する)の任意のファイルの任意の関数から使用すると正常に機能しますが、ログクラスを使用してライブラリの任意の場所に配置すると、何も出力されません。
関数が正しく実行されていることがわかります(単純なexit(0);を使用してテストします)。
今でも私はc/c ++のライブラリの概念全体に少し慣れていないので、理解できないことがあるかもしれませんが、そうでなければ、なぜそれが機能しないのかわかりません。
こことグーグルで検索してみましたが、同じ問題を抱えている人は他に見つかりませんでした。
VC++2010を使用しています
編集:ライブラリからstderrを使用する代わりに、ファイルポインターを渡すというアイデアがありましたが、これにより例外がスローされます(スロー時にファイルの_tmpfnameポインターがNULLであるため、正しいかどうかはわかりません)