Visual Studio 2010 の下に、DLL にコンパイルされる C++ プロジェクトがあります。プロジェクトで定義されたいくつかのプライベート実装固有のクラスがありCMyClass
ます。このクラスは、dll またはインターフェイス関数によってエクスポートされません。しかし、生成されたdllファイルを確認すると、「CMyClass」という文字列が格納されています。これはリリース ビルドであり、この文字列を dll ファイルに表示したくありません。この dll は顧客に出荷されます。プロジェクトで使用したすべての名前を dll ファイルから削除して、dll で使用しているアルゴリズムについて簡単な手がかりを誰も得られないようにしたいと考えています。
リリース構成を使用します。プロジェクトのプロパティで、[リンカー] タブの [デバッグ情報の生成] オプションがオフになり、[C/C++] タブの [デバッグ情報の形式] が [プログラム データベース (/Zi)] に設定されます。「Debug Information Format」に空の文字列を設定しようとしましたが、成功しませんでした。
dll で見つかった文字列は次のように見え.?AVCMyClass@@
、dll ファイルの最後にあります。これは、dll ファイル内に "CMyClass" 文字列が出現する唯一の場所です。ただし、この文字列は、ほとんどすべての内部クラスに表示されます。
これらの言及を取り除く方法は?
アップデート
ソースコード自体を難読化したくないことに注意してください。提供されたリンクは無関係です。クラス名がdllファイルに保存される理由がわかりません。ビルドする前にいつでもクラスの名前を変更できますが、それはあまり単純な解決策ではありません。
Update2
これは重複していないため、この質問を閉じることについてコミュニティに同意しません。その答えは、Tyler Gillのコメントに示されています。彼に感謝し、他人に恥をかかせます。