スタティックライブラリに問題があります。名前の衝突なしに、同じSDKの2つの異なるバージョンを1つのDLLで使用する必要があります。私は解決策はSDKのすべてのバージョンの2静的なlibsを作成し、これらのlibsをDLLにインポートすることだと思った。しかし、この解決策は奇妙な作品と私はなぜ....スタティックライブラリ
簡素化の状況は次のようになりますわからない:
LIB1 - あり - SDK 1.0からのものを使用する関数Add1を
LIB2がありますSDK 2.0から物事
DLL-輸入LIB1とLIB2を使用し、機能がAdd1をやADD2を呼び出します(floatバージョン)を追加している機能ADD2 - パラメータでバージョン番号に依存
コンパイルプロセスはOKですが、DLL作品1つのバージョンSDKのみで:(
私がそれをデバッグすると、そのプログラムがバージョン2.0のパラメータからAdd関数を呼び出すのがわかります。 Add Add2を実際に呼び出す - これはまだ正しいです。しかし、Add2関数の中では、SDK 2.0の代わりにSDK 1.0で定義されているものを使用します。 LIB2はSDK 2.0で実際に作成されます。 (dirsとlibディレクトリはSDK 2.0に設定されています)
なぜSDK 1.0を使用しますか? :(
は、(異なる名前空間が存在しない)???私はSDK 2.0からSDK 1.0オーバーライド・シンボルからDLLや記号を作成するときにため、リンカのすべてを一緒に参加していることです。
あなたが任意のアイデアを持っていますか私は、Visual C++ 2010を使用し、問題があるとどんな解決策がある???
どうもありがとうございました!
...あなたが観察