使用できまVisual Studio6集C++静的ライブラリVisual Studio2008年?
-
05-09-2019 - |
質問
使用できるのはC++の静的ライブラリ(.lib)査Visual Studio6Visual Studio2008年?
解決
私がなぜ考えるべきではありません)解放ます。
このアプローチは、コンパイラのすべての種類を指定してコンパイルDLLの正常に動作し、静的にリンクLIBSはあまりにも[OK]をする必要があります。
他のヒント
これは実際に依存します。 libにのみ「のextern 『C』」メモリはストレートのWin32方法(CoTaskMemAlloc、など)によって管理されるかまたは発信者が呼び出し先によってまたはその逆割り当てられたメモリを解放することはありません?の機能を公開していあなただけのVS 6以来あまり変わっていない基本的なライブラリに依存しているのですか?もしそうなら、あなたは問題ないはずです。
を監視するための2つの基本的なものがあります。これらのサードパーティのライブラリで定義されたサードパーティのライブラリで使用されるグローバル変数への変更、および構造体の構造の変更、クラス、など。例えば、CRTのメモリアロケータは、おそらくそれはおそらくクラッシュの原因となりますメモリの一部を割り当て、別の自由を持つので、ライブラリのあるバージョンを持つ、2つのバージョン間でその隠された割当管理構造を変更しました。
あなたがインターフェイスを介してC ++のクラスを公開し、彼らはMFCのようなMSのランタイムライブラリに依存している場合は、は、別の例として、上のメンバー/フィールドにアクセスすることを意味し、クラスのレイアウトは、VS 6とVS 2008の間で変化している可能性がありますクラスは、間違ったことに行くと、予測できない結果を引き起こす可能性があります。 .libファイルがどの容量でMFCを使用している場合は、おそらくまずいです。 MFCは定義し、内部的にグローバルのトンを使用し、MFCのインフラがホスティング環境(それはところで、VS 6以降大きく変わっています)に変更された場合の.libでの操作によってMFCグローバルへのアクセスは、障害を引き起こす可能性があります。
私は変更がMFCヘッダーで行われたかを正確に調査していないが、私はバージョンVS異なるでコンパイルMFC / ATLベースクラスのバイナリ間の予期しない動作を見てきました。
は、これらの問題の上に、ランタイムライブラリで定義された静的なグローバル変数に依存してはstrtokのような関数()のリスクがあります。私はわからないんだけど、私はあなたがマルチスレッドCRT上で作成されたスレッド上でシングルスレッドCRTを期待して、クライアントを使用する場合、これらの静的変数が正しく初期化されないことがあり心配です。詳細は_beginthread()のドキュメントを見ます。
はい。全くこれには問題があってはなりません。 gbjbaanb に述べたように、あなたはあなたの記憶を気にする必要がありますが、VS2008はまだそれで動作します。限り、あなたはCLRをミックスしようとしていないとして、それを使用してコードを(管理)。すべての可能であれば私はそれに対してお勧めします。あなたは、生のCまたはC ++コードについて話している場合でも、必ず、それは動作します。
あなたが使用して正確に何を計画していますか? (何がこのライブラリにある?)あなたはすでにそれを試してみましたが、問題が発生している、またはあなただけの文句を言わないことを仕事に何かを取得しようとしている時間の束を無駄にする前に、あなただけのチェックをされますか?
それがうまくいく確かます。
あなたは参照をコーディングするVS2008でどこ求めていますか?
もしそうなら、小道具をprojのために行く - >リンカ - >プロパティページの構成プロパティに入力。 「追加の依存関係」を探し、そこに.LIBをコーディングします。
小道具をprojのために行く - >リンカ - >一般およびコード "追加のライブラリディレクトリ" のLIBSパス
。それを行うべきだと!!
答えは、我々はVS2k5にVS6から移動したときに、我々はメモリモデルが変更されていたとして、私たちのすべてのライブラリを再構築しなければならなかった、ノーである、とした例がありますCRT関数どこ異なっています。