1

VC++ 2010 を使用して構築された C++ ライブラリがあります。このライブラリのヘッダー、インポート ライブラリ、および DLL があります。VC++ 2012 を使用してビルドしようとしている Windows 8 ストア アプリでこのライブラリを使用したいと考えています。アプリはローカル コンピューターでは正常に動作しますが、リモートの Windows 8 デバイスでこのアプリを実行しようとすると、アプリの読み込みに失敗します。 . 私は何を間違っていますか?

4

1 に答える 1

2

古いバージョンの Visual Studio (Visual Studio 2012 よりも古い) を使用してビルドされた C++ バイナリは、Windows 8 ストア アプリでは使用できません。

その理由は、たとえば Visual Studio 2010 を使用してビルドされたバイナリは、Visual Studio 2010 の C++ ランタイム DLL に依存するためです。一方、アプリの残りの部分は Visual Studio 2012 を使用して記述されているため、C++ ランタイム DLL に依存します。 Visual Studio 2012 から。後者は、Windows ストアから自動的に利用可能になります (詳細については、こちらをお読みください)。ただし、前者は Windows ストアでは入手できません。また、アプリが VC2010 ランタイムへの依存関係を表現する方法はありません。アプリ パッケージ内に VC2010 ランタイム DLL を含めても、ストア アップロード時にパッケージが拒否されるため、機能しません。

したがって、最適なオプションは、Visual Studio 2012 を厳密に使用して、Windows 8 ストア アプリのすべてのソースをビルドすることです。

于 2012-12-30T06:55:59.383 に答える