CH3COOH(酢酸)のさくっと393

VB.NET(VS2003)でお仕事中.Windows Mobile大好きです。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  413  : 記事  0  : コメント  7767  : トラックバック  93

ニュース

CH3COOH(酢酸)の実験室 or SOFTBUILD

書庫

日記カテゴリ

Todayプラグインは、ネイティブDLL(C/C++)でのみ作成が可能という認識でしたが、.CFで作成する方法があるという事を教えて頂いたので、早速試してみました。

Creating a Pocket PC Today Screen Plug-in with the .NET Compact Framework?
を参考に進めていきます。

?

ダウンロード&インストール

Download details: .NET Compact Framework Sample: Today Screen
をダウンロードして、インストールします。

デフォルトのインストール先が
C:\Program Files\.NET Compact Framework Samples\
になっていますので、そのままインストールを実行します。

以後、
C:\Program Files\.NET Compact Framework Samples\Today Screen\Code\Support
を、(CodeDir)と省略させて頂きます。

?

変換作業

このサンプルソースは、
もともとVS2003&eVC用向けに作成されているので、
VS2008を使用している場合、面倒な変換作業が発生します。

依存関係があるので下記の順番通り以外では、動作確認を行っておりません。

?

UnManagedプロジェクトのビルド

TodayScreenDataMgrのビルド

(CodeDir)\Support\TodayScreenSupport_UnManaged\TodayScreenDataMgr
TodayScreenDataMgr.vcp
を開き、変換ウィザードで変換を行います。

変換完了後、TodayScreenDataMgrのプロパティを開き、構成マネージャを開きます。
[アクティブソリューションプラットフォーム]を「Windows Mobile 6 Professional SDK (ARMV4I)」に変更します。

[構成プロパティ]→[リンカ]の出力ファイルを
$(PlatformName)\$(ConfigurationName)/TodayScreenDataMgr.dll
から
ArmRel\TodayScreenDataMgr.dll
へ置換します。

[構成プロパティ]→[リンカ]→[詳細]のインポートライブラリを
$(PlatformName)\$(ConfigurationName)/TodayScreenDataMgr.lib
から
ArmRel\TodayScreenDataMgr.lib
へ置換します。

[構成プロパティ]→[ビルドイベント]→[ビルド前のイベント]のコマンドラインに
if not exist ArmRel\CON mkdir ArmRel
if not exist X86Rel\CON mkdir X86Rel
を追加します。

[構成プロパティ]→[ビルドイベント]→[ビルド後のイベント]のコマンドラインに
copy ArmRel\TodayScreenDataMgr.dll X86Rel\TodayScreenDataMgr.dll
copy ArmRel\TodayScreenDataMgr.lib X86Rel\TodayScreenDataMgr.lib
を追加します。

Releaseビルド完了後、VS2008を終了します。

TodayScreenPlugIn_NETCFHostのビルド

(CodeDir)\TodayScreenSupport_UnManaged\TodayScreenPlugIn_NETCFHost
TodayScreenPlugIn_NETCFHost.vcp
を開き、変換ウィザードで変換を行います。

変換完了後、TodayScreenDataMgrのプロパティを開き、構成マネージャを開きます。
[アクティブソリューションプラットフォーム]を「Windows Mobile 6 Professional SDK (ARMV4I)」に変更します。

[構成プロパティ]→[リンカ]の出力ファイルを
$(PlatformName)\$(ConfigurationName)/TodayScreenPlugIn_NETCFHost.dll
から
ArmRel\TodayScreenPlugIn_NETCFHost.dll
へ置換します。

[構成プロパティ]→[リンカ]→[詳細]のインポートライブラリを
$(PlatformName)\$(ConfigurationName)/TodayScreenPlugIn_NETCFHost.lib
から
ArmRel\TodayScreenPlugIn_NETCFHost.lib
へ置換します。

[構成プロパティ]→[ビルドイベント]→[ビルド前のイベント]のコマンドラインに
if not exist ArmRel\CON mkdir ArmRel
if not exist X86Rel\CON mkdir X86Rel
を追加します。

[構成プロパティ]→[ビルドイベント]→[ビルド後のイベント]のコマンドラインに
copy ArmRel\TodayScreenPlugIn_NETCFHost.dll X86Rel\TodayScreenPlugIn_NETCFHost.dll
copy ArmRel\TodayScreenPlugIn_NETCFHost.lib X86Rel\TodayScreenPlugIn_NETCFHost.lib
を追加します。

Releaseビルド完了後、VS2008を終了します。


?

Managedプロジェクトのビルド

(InstallDir)\Today Screen\Code\Support\TodayScreenSupport_Managed
TodayScreenSupport_Managed.sln
を開き、変換ウィザードで変換を行います。

TodayScreenSupportCabの設定

(InstallDir)\Today Screen\Code\Support\TodayScreenSupport_Managed\TodayScreenSupportCab
TodayScreenSupportCab.vcproj
をエディタ等で開き、

$(VSInstallDir)CompactFrameworkSDK\v1.0.5000\bin\cabwiz.exe

C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe
へ、置換します。(VS2005をお使いの方は適切なファイルパスに変更してください)

ソリューションのビルド

ソリューションのビルドを行ってください

?

Wizardのインストール

(InstallDir)\TodayScreenSupport_Managed\TodayScreenSupport_Installerr\Release
TodayScreenSupport.msi

(InstallDir)\TodayScreenSupport_Managed\TodayScreenWizard_Installer\Release
TodayScreenWizard.msi

をクリックして、Custom Today Screen Wizardをインストールします。

?

VSの起動

[ファイル]→[新規作成]→[プロジェクト]で、新規Custom Today Screenプラグインが追加

されていません!!!

(いまここ)

?

[参照資料]
Creating a Pocket PC Today Screen Plug-in with the .NET Compact Framework

(追記)
このやり方でもUnManaged側のアプリを作る事は可能です。なのでManaged側のコードをUnManagedアプリに合わせて書くだけで適切に動くと思われます。ソース見たら判りますけど、UnManagedアプリはManagedアプリを起動させにいってるだけです。

投稿日時 : 2008年8月31日 22:01

コメント

No comments posted yet.

Post Feedback

タイトル
名前
Url:
コメント