3

他のプラットフォームに移植したい Windows-CE 6.0 アプリケーションを引き継ぎました。これは、Embedded C++ バージョン 4.0 で記述された、比較的単純な自己完結型の GUI アプリケーションです。

私が最初に興味を持ったターゲットは、通常の Windows デスクトップ (つまり、XP、Vista、Windows-7) です。

デスクトップ アプリケーションを CE に移植するのは簡単ではないことを理解しています。しかし、私が興味を持っている逆はどうですか?Windows-CE から Windows デスクトップへの移行は (ある程度) 上位互換性がありますか? 「この 1000 ドルの Microsoft XYZ C++ 開発環境を購入して、コンパイルしてすぐに使える!」という意見をぜひお聞きしたいと思います。

(参考までに、私はGUIアプリケーションやWindows環境でのプログラミングの経験がありません。私は、何十年ものC / C ++の経験を持つ単純なLinux / Unixの男であると思いますが、Windows-Fuはまったくありません... ;-)

4

1 に答える 1

3

実際、移植は非常に簡単です。CE は主に Win32 のサブセットであり、Unicode に重点が置かれています。

おそらく、UNICODE が定義されていることを確認してビルドすると、少し運が良ければ、そのほとんどが「問題なく動作する」でしょう。ハングアップする場所は次のとおりです。

  • UI は、お使いの PC と一致しない解像度に設定される可能性があります。多くの場合、CE アプリは特定のデバイスと解像度を対象としており、これは必ずしも PC で非常に美しいものになるとは限りません。
  • coredll から動的に読み込まれる (GetProcAddress) ものはすべて、kernel32/user32/etc に再マップする必要があります。
  • デバイスが SIP (ソフトウェア入力パネル、つまりオンスクリーン キーボード) を使用している場合、そのすべてを取り除く必要があります。
  • アプリが置き換えが必要な通知 (アイコンなど) を使用している場合
  • アプリが電源管理を使用している場合、それを取り除く必要があります
  • アプリがデバイス固有のもの、特にドライバーへの直接呼び出しを使用する場合、それらすべてを置き換える必要があります
  • アプリがポイント ツー ポイント キューを使用している場合は、それを置き換える必要があります
  • アプリがデバイス マネージャーを使用している場合 (例: 接続されたデバイスの通知を取得するため)、交換する必要があります

aygshell.dll への呼び出しも問題になる可能性があります。

于 2011-05-17T17:09:16.737 に答える