- - PR -
Win CE でサポートされてない windows API をどうする?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-04-11 06:08
Windows XP で動作しているC++コード(アンマネージド)をCE 6.0 に移植しています。
初めてのCEで、色々試行錯誤しながら、大体こんな手順でエラー1つずつに対処するようになりました。 - とりあえずビルドしてみる - 未定義エラーがあれば、CEでサポートされているファイル全てに対して検索をかけ、単にSDKに含まれていないだけの問題か調べる(自分でSDKを作れる環境なので) - CEでサポートされていないことが分かれば - structなど、ヘッダファイルの定義だけで済むならば、コピーして新たなヘッダファイルを作る - 関数なら代替できるものを探す、ダメならロジックを解析して書き換える しかし、低レベルなAPIコールがサポートされていない時にはどうすればいいかで悩んでいます。たとえば、signal, _findfirst, _findnext などです。 signal http://msdn.microsoft.com/ja-jp/library/xdkz3x12.aspx _findfirst http://msdn.microsoft.com/ja-jp/library/zyzxfzac.aspx 私のCEの知識が浅いので、何か知らないことは無いかと思って質問しています。こういう低レベルAPIについて、何か良い回避方法、良い調べ方のアプローチはありますか? どうぞよろしくお願いします。 |
|
投稿日時: 2009-04-14 12:02
こんにちは。
Windows CEは、ANSI またはPOSIX準拠のCランタイムライブラリをフルにはサポートしていないですからねぇ。↓ Platform Builder for Microsoft Windows CE 5.0 C Run-time Libraries (msdn) 代替のWindows APIがあれば探してみましょう。 _findfirst → FindFirstFile _findnext → FindNextFile など。 signal関数ですが、Windows APIでいえば SetConsoleCtrlHandlerが一番近いのでしょうが、CEにはなさそうですね。 どういう目的でsignal関数を使っているのかを見てみる必要があると思います。移植元がWindows XPであればプロセス間通信的な使い方ではないように思います。 Ctrl+Cシグナルなどの割り込み処理であれば、Windows CEで意味があるものなのか調べたほうがよいと思います。(まともなキーボードが付いているようなWindowsCE機のほうが珍しいでしょう!?) |
1