2011-05-17 161 views
2

我接管了一個我想移植到其他平臺的Windows-CE 6.0應用程序。這是一個相對直接的,獨立的GUI應用程序,用Embedded C++ Version 4.0編寫。我感興趣的第一個目標是常規的Windows桌面(即XP,Vista,Windows-7)。將Windows-CE應用程序移植到Windows桌面

我知道將桌面應用程序移植到CE是非常平凡的;但是反過來呢,我感興趣的是什麼呢?從Windows-CE到Windows桌面(有點)向上兼容?我當然很想聽到「買這個1000美元的Microsoft XYZ C++開發環境,然後編譯並去!」 (FYI我沒有使用GUI應用程序的經驗,也沒有Windows環境下的編程經驗;假裝我只是一個擁有數十年C/C++經驗但絕對沒有Windows-Fu的簡單linux/unix傢伙;-)

+0

也許你只是可以使用虛擬化。 – garzanti 2011-05-18 05:02:27

回答

2

實際上,移植應該非常簡單。 CE主要是Win32的一個子集,主要強調Unicode。

你或許可以確保UNICODE被定義,構建,並且運氣好一點,它的大部分將會「正常工作」。這將是掛斷的地方是:

  • 的UI很可能對不你的電腦匹配的分辨率進行設置 - 通常CE應用程序是針對特定的設備和分辨率,這並不必然在PC上非常美觀。
  • 從coredll動態加載的任何東西(GetProcAddress)都必須重新映射到kernel32/user32/etc。
  • 如果設備使用SIP(軟件輸入面板 - 即屏幕鍵盤),那麼所有這些都必須被剝離出來。
  • 如果應用程序使用了具有被替換
  • 如果應用程序使用任何電源管理,是要被敲詐了
  • 如果應用程序使用任何設備特定的東西任何通知(圖標等) - 尤其是直接調用驅動程序,所有這些都必須更換
  • 如果應用程序正在使用點對點隊列,必須更換
  • 如果應用程序使用設備管理器(例如獲取copnnected設備的通知)必須被替換

對aygshell.dll的任何調用都可能有問題。

+0

謝謝,這是最令人鼓舞的。任何想法,我應該看看什麼樣的開發環境?也許「Visual Studio C++ 2010」或者這些日子可能會被調用的任何東西? FWIW我認爲你提出的大部分細節可能對我來說都不是問題(我的CE應用程序使用640x480全屏幕,它使用觸摸屏而不是鍵盤,除此之外,它基本上會將一些TCP和UDP用於遠程設備並向用戶顯示結果)。 – 2011-05-17 20:13:32

+0

Studio 2010 Express可能工作得很好。 – ctacke 2011-05-17 22:08:18

相關問題