4

Visual C++ 6.0 を使用している ATL/COM ベースの DLL がいくつかあります。生成された DLL から「古い」ものがいくつか必要です。

(1) それらは、Visual Basic 6.0 (古い VB6、特に VB.Net ではありません) で開発されたプロジェクトと互換性がある必要があります。

(2) 古いオペレーティング システム (Windows 98 SE 以上) と互換性がある必要があります。明確にするために、それらはそのような OS で実行する必要があるという意味であり、そのような OS を実行するマシンでそれらを開発できなければならないという意味ではありません。

Visual Studio 6.0 にはうんざりしています。Dot Net への変換 (またはそのような大きな変更) は、現時点では問題外であるため、VB6 を引き続き使用する必要があります。しかし、最小限の労力で (つまり、必要な再コーディングがほとんどない場合)、新しい Visual Studio の C++ に切り替えることはできますか?

もしそうなら、気をつけるべき「落とし穴」はありますか?

ありがとう。

4

2 に答える 2

2

VS.Net のさまざまなバージョンは、古い .Net プロジェクトをある程度開くことができますが、どちらの言語の 6.0 を含む .Net より前のものを開くことはできません。

.Net VS アプリケーションの 1 つで新しい C++ プロジェクトを作成し、そこで C++ プロジェクトを再構築できるはずです。アンマネージ C++ コードは .Net ランタイムを必要としないため (さらにネイティブ マシン コードにコンパイルされるため)、動作するはずです。 )、しかし、私は長い間 C++ をあまりやっていなかったので、それが 100% うまくいくかどうかはわかりません。

于 2010-03-31T19:36:57.940 に答える
0

はい、でも少し痛いです。これが、ほとんどのショップが VC6 に固執する理由です。Windows 98 で COM DLL をテストしていないことは認めますが、NT 4.0 と Visual Studio 2005 までさかのぼります。

最小限の努力はないことを強調したいと思います。コードの書き方によっては、変換が非常に面倒になる場合があります。あるプロジェクトでは、検索と置換で 10 件中 9 件の問題が修正されました。YMMV。低レベルの COM 配管の一部を書き直す必要がある場合があります。

于 2010-03-31T19:45:06.940 に答える