PocketC#がT-01A(WM6.5)で動作したので、興奮の余り業務中にもかかわらず、メモ。
まず、PocketC#をインストールすると"\Program Files\Pocket C#"以下に実行形式ファイルがいくつか作成されるのですが、そのいずれかを実行しようとすると「有効なPocketPCアプリケーションではありません」というメッセージが出てしまい、実行することが出来ませんでした。
上記のメッセージは、その実行ファイルと依存関係にあるDLLが端末のレジストリに登録されていない場合に発生するようです。また、搭載されているCPUに対応していない実行形式ファイルを実行しようとすると発生することもあるそうです。
これの解決方法ですが、まず「MSCEInf」を利用して、インストール用CABファイルを解体して、目的の実行形式ファイルを取り出します。次に、その実行形式ファイルと依存関係にあるDLLを調べるために「Dependency Walker」を使って、依存関係にあるDLLをリストアップします。リストアップされた中から、外のアプリ等では使われていない怪しいDLL(PocketC#の場合「libc.dll」がそのDLLでした)に目星をつけて、レジストリ

HKEY_LOCAL_MACHINE\System\Loader\LoadModuleLow

に新たに

レジストリの名前:DLLのファイル名(例:hogehoge.dll)
レジストリの型:DWORD
レジストリの値:1

レジストリを作成。以上です。



上記解決方法はT-01A(WM6.5)でしか試していませんので、ほかの端末のことは知りません。悪しからず。

追記
どうやら「libc.dll」はPocketGCCでも使われてたようで、こちらも使えるようになりました。WindowsMobileが始まってきた気がします。