10 年以上 C++ でプログラミングを行っていないため、レガシー C++ Win32 DLL に適切なエラー レポートを追加しようとしています。
これは、潜在的なバッファ オーバーランやセキュリティの問題は言うまでもなく、C/C++ で null で終了する文字列を扱うという信じられないほど退屈なことを思い出させてくれます。
より高度な文字列ライブラリの使用を検討しています - おそらく MFC CString または STL ライブラリです。
編集
DLL は、C++ で記述された当社のソフトウェアの古いバージョンの両方で使用されます。以降のバージョン - C# で記述されています。
コンパイラはVS2008です。
最初のパスでは、標準の Windows イベント ログにログを記録しています。これは、エラー メッセージを DLL クライアントに返すことは大きなアーキテクチャの変更になるためです (現在のアーキテクチャはひどいものであり、複数の障害モードが 1 つのブール値の成功/失敗にまとめられています)。コール スタックのずっと上に渡される戻り値. 言うまでもなく、これは問題の診断を悪夢にします)。しかし、これは後日改善したいと思います。
文字列ライブラリに関する質問
これは DLL であるため、これでよいのでしょうか。
DLL に関する特別な考慮事項はありますか?
注意すべき点はありますか?
この目的のために、あるライブラリは他のライブラリよりも優れていますか?
空文字列の質問
null で終了している場合、どの文字列関数のセットを使用すればよいですか? MS のヘルプ ドキュメントでは、古い C 関数 (strcat など) の使用を推奨していません。しかし、現在利用可能なオプションは他にもたくさんあるようです (例: _tcscat、_mbscat、wcscat など)。どちらを使用する必要がありますか? なぜですか?