1

現在のプロジェクトの 1 つで、サードパーティの C++ ライブラリを使用しています。ただし、彼らのライブラリはカスタム名前空間を定義していません。したがって、それらの機能はすべてそこにあります。これは大したことではありませんが、理想的には名前空間を使用していたはずです。

#includeある種のカスタム疑似名前空間の下でヘッダーファイルを作成することは可能ですか? このようにして、すべての関数を名前空間に含めることができます。

4

2 に答える 2

1

これが関数の名前を変更する限り、それを行うことはできません(C++の場合)。リンカーは名前空間の名前を関数に追加するため、関数がないためにリンクが失敗します。

次のコードの例

namespace MyName
{
    class MyNestedOne
    {
    public:
        void doNothing( );
    };
};

関数 doNothing の名前は doNothing@MyNestedOne@MyName@@ になります。

于 2012-04-28T16:23:45.607 に答える
0

あなたが言うように、それらが名前空間にあるなら、それはより良いでしょう。しかし、それはそれほど問題ではありません。

または、.libの代わりに.dllを使用できる場合は、動的にバインドして使用し、手放すことができます。このようにして、ランタイム全体でフローティング関数を使用することはできません。

于 2012-04-28T19:06:35.107 に答える