2009-05-06 6 views
2

Visual Studio 2003プロジェクト内からVisual Studio 2008でコンパイルされたDLLとライブラリを使用するにはどうすればよいですか?VS2003ソリュ​​ーションのVS2008ビルドライブラリを使用することはできますか?

おかげで、 ダン

+0

私は明確にしたいと思います。私は.NETの依存関係がないC++を使用しています。 – DanJ

+0

私はパラメータとして渡されるC++クラスへのポインタを持っています。これらを削除してネイティブタイプのみを使用することをお勧めしますか? const std :: string&のようなstl型はどうでしょうか? – DanJ

答えて

1

DLLを使用することは間違いありません。 VS2003とVS2008で同じサードパーティのDLLを使用しました。物事をもっと簡単にするために、単純な古いデータ型をDLL関数との間で渡すだけです。構造体やクラスははるかに難しいですが、VS2003とVS2008の間でもほとんどの場合可能です。

this questionsは、私があなたに与えるよりもはるかに詳細な情報を確認してください。

0

あなたはそれを行うことはできません。唯一可能なことは、.NET 1.xをターゲットにして再コンパイルすることです。一般的に

+0

なぜこれが.NETに関係していると思いますか? – Aardvark

1

、それはあなたがコンパイラのいずれかが明示的に他とのバイナリ互換としてリストされていない限り、他のコンパイラでコンパイルしたC++ライブラリ(動的または静的)を使用することができますとは考えにくいです。

「サードパーティ」またはWindows DLLについての回答があります。しかし、私はこれらのDLLのすべてではないにしても、C++ではなくC APIを使用していたのではないかということに喜んで賭けています。 C++ ABI(Application Binary Interface)は標準化されていません。名前のマングリングなどは、同じコンパイラの異なるバージョン間で同一であることが保証されておらず、呼び出し規約はコンパイラのオプションに基づいて異なります。

使用可能だったすべてのリンクを上げていなかったが、私が最初に言ったように、一般的に、あなたは異なるでコンパイルされたコードの静的または動的にコンパイルC++ライブラリを、使用することはできません迅速なGoogle検索コンパイラ。 Cは別の獣ですが、その答えはまったく異なります!

+0

詳細を追加できますか?それは本当にライブラリ間で何がやりとりされるのかにかかっていますか?確かに、(VCの*バージョン++ *で構築された)は、Windows API DLLが(一部は6.0、2003、2008、2010、等...ている)ユーザが作成したアプリをVC++のすべてのバージョンで動作します。 – Aardvark

関連する問題