VS2008 から VS2012 へのアップグレードを余儀なくされました。つまり、すべてのコードを .NET Framework 4.0 に更新する必要がありました。私の目標は、この更新プログラムで Windows XP との互換性を維持することです。
だから私は複数のプロジェクトで解決策を持っています。ほとんどが VB で書かれています。1 つのプロジェクトは C++ で記述されています。これは、DDE コマンドへのアンマネージ呼び出しを行い、それをマネージ オブジェクトにラップする必要があったためです。私ができる最善の方法は、VS2008 環境で .NET 3.5 を使用してコンパイルし、Windows XP で問題なく動作するようにすることでした。私の主なプロジェクトは現在、混合モードのアセンブリです。これはおそらく余分な情報ですが、関連する場合に備えてこれを述べます.
コンパイルされたプログラムは、私の Windows 7 開発マシンで問題なく動作します。Windows XP マシンでテストすると、プログラムの実行時間の約 20% で、「GetTickCount64 が見つかりませんでした」というエラーが表示されます。Windows XP がこの呼び出しをサポートしていないことはわかっています。主な問題は、私のソフトウェアには、最後の起動からの経過時間を知る必要があるポイントがないことです。コンパイル時に、Visual Studio によって何か余分なものが追加されたと思います。そのメッセージで「OK」をクリックすると、ソフトウェアは正常に動作します。持っているだけで面倒です。この呼び出しが行われている場所を見つけて殺す方法はありますか? 「GetTickCount64」のソリューションを検索してみましたが、何も見つかりませんでした。