■WindowsCEプログラミング(EVC PB3含む)Ver2.2■

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/03/06(火) 12:16:14
WindowsCEプログラミングを話し合うスレッドです。

アプリケーション
ドライバ
プラットフォームビルダからのシステム構築まで幅広く語り合いましょう。

前スレ
■WindowsCEプログラミング(EVC PB3含む)Ver2.1■
http://pc11.2ch.net/test/read.cgi/tech/1102860886/
343340
垢版 |
2008/05/25(日) 14:21:24
自力で調べました。独自でドライバを作る必要があるようですね。
ソースコードがダウンロード可能なゲームパッド用のドライバを参考にしながら、自分の望み通りのことは実現できました。
お騒がせしました。
2008/05/27(火) 00:35:56
>>343
自己解決おめ

WMのドライバってVS2005とかeVC4とかで作れるの?
昔はPlatformBuilderが必要だったんだよね?
2008/05/27(火) 23:57:31
>>344
昔からPlatformBuilderなしでもドライバ作成は出来た。
ヘッダやlibファイルの調達、実機デバッグがかなり困難なので非実用的なだけ。
2008/05/30(金) 15:51:56
VS2008のエミュレータで明朝体フォントを表示させたいのですが、
フォントを追加指定するなどして表示させるような事は可能ですか?
2008/06/03(火) 18:42:26
VS2005使ってるんだけど、ARMV4以外のCPUのコンパイルにはPlatformBuilder必要?
348デフォルトの名無しさん
垢版 |
2008/06/10(火) 22:25:34
あれ?mshtml.dll って入ってないの?
2008/06/16(月) 11:58:57
XP上でWindowsCE3.0のエミュレータを動作させたくて、
eMbedded Visual C++ 3.0とPocket PC 2002 SDKと
日本語化キットをインストールしたのですが、
Pocket PC 2002 SDKインストール時に
Windowsが不安定になるためドライバを無効にしたと表示されます。
そのせいか、インストール完了してプログラムを動作させようとしても、
StartingEmuratorSetupServer時にエラーが出て動作しません。
XP上でWindowsCE3.0のエミュレータ環境を動かす方法は無いでしょうか。
2008/06/19(木) 23:13:51
Windows Mobile上で任意のプロセス(プロセスは自アプリからCreateProcess)の
APIをフックしたいのですが、サンプルとかないでしょうか
2008/06/20(金) 10:49:00
>>349
>Windowsが不安定になるためドライバを無効にしたと表示されます。
boot.ini に
  /noexecute=alwaysoff /NOPAE
追加したらいいんでないかな。
2008/06/25(水) 21:50:01
EVC++のコンパイラってC++の仕様に準拠していないですか?

シングルトンクラスを実現しようとコンストラクタやデストラクタを private にして、
GetInstance という static メンバ関数の中で static なローカル変数を定義して、
それを返すという実装をやってみました
すると、デストラクタが private なメンバにアクセスできないとかなんとかで
コンパイルエラーが発生します。
仕方がないので、応急処置としてデストラクタだけ public にしています。
でもこれだと完全なシングルトンではないので、どうにかしてできないかと
思っています。
何か手はないですか?

ちなみに、このシングルトンの実装方法は、

http://www.geocities.jp/ky_webid/design_pattern/009.html

にある「静的ローカル変数を使う方法」を参考にしています。
2008/06/26(木) 07:58:16
>352
EVC++4.2で試したが普通に動くぞ。
多分だけど、お前がSingletonパターンを理解してないだけじゃね?
2008/06/26(木) 14:39:25
参考にしたサイトを張る前に、問題のあるお前のコードをロダにあげるのが先だろ。
2008/06/26(木) 21:28:21
EVC++4.0sp2 でコンパイルしようとしましたが、できませんでした。
コードは大体以下のような感じです。

class CSingleHoge
{
private:
CSingleHoge() {}
~CSingleHoge() {}
CSingleHoge(const CSingleHoge& src);
const CSingleHoge& operator =(const CSingleHoge& src);
public:
static CSingleHoge& GetInst()
{
static CSingleHoge inst;
return inst;
}
}

行数の関係で簡略化していますが、実際には h ファイルと cpp ファイルに分けています。

CSingleHoge::GetInst().XXX

のようにして使用します。

BCB6 ではバグらしいので、もしかして EVC も?と疑っている訳です。
http://ml.tietew.jp/cppll/cppll_novice/article/172
2008/06/26(木) 21:47:25
VC6で再現した。EVC4はVC6相当だっけ?
2008/06/26(木) 22:11:28
「インスタンスを作れない」という前提条件が満たされてるなら、デストラクタは隠蔽する必要無いだろ
2008/06/26(木) 22:26:38
class ClassA {
 ClassA(){ puts("ClassA"); }
 ~ClassA(){ puts("~ClassA"); }
 static ClassA* instance;
 static void destructor_invoker() {
  if (instance) { delete instance; instance = NULL; }
 }
public:
 static ClassA& factory() {
  if (instance == NULL) {
   instance = new ClassA();
   atexit( destructor_invoker );
  }
  return *instance;
 }
};
ClassA* ClassA::instance = NULL;
2008/06/26(木) 22:30:42
>>357
deleteを禁じたいわけね
2008/06/27(金) 09:21:42
355の組み方なら参照を返してるし、わざとポインタにしてアクセスしない限りdeleteはありえないし、
inst自体がnewで生成してねぇからdeleteした時点で落ちるだろ
そもそもC/C++に置けるこの手のデザインパターンは、うっかりミスの軽減、バグの追跡しやすさなんかを向上させる程度の意味しかないぞ
361デフォルトの名無しさん
垢版 |
2008/06/28(土) 17:41:41
>>353-354, >>356-360

レスありがとうございました。

とりあえず、delete 演算子も private とすることで、(応急処置的ではありますが)
本件については気にしないことにします。
2008/06/30(月) 16:06:10
WILLCOM 03が出たよ
2008/07/03(木) 14:26:17
VS2005/2008でtodayプラグインを作っています。
todayプラグインのデバッグですが、効率の良いテスト方法はありますでしょうか。
現在はEMU上に転送して動作テストをしているのですが、修正したときに
todayから外す→転送→todayに表示させる、といった一連の動作を手動で行っています。
NGNG?2BP(100)
VS2005評価版でC++のスマートデバイスのプロジェクトを作ろうとすると
失敗してしまうのですが、なぜでしょうか。
C#は作成できるのですが。
NGNG?2BP(100)
googleで調べたらIE7を入れてるからとあるな・・なんじゃそりゃー
366364
垢版 |
2008/07/12(土) 23:51:23
SP1にしたらC++のプロジェクト作成できた
2008/07/13(日) 14:46:36
WindowsCE 5.0 の分解能っていくつですか?
10ms とか 15ms とかですか?

ネットで検索しているのですが、なかなか見つからないです。
368デフォルトの名無しさん
垢版 |
2008/07/14(月) 10:04:31
タイマーの保証100msec
2008/07/20(日) 22:54:39
CE用のVC++って、STLが使えないんでしょうか?
2008/07/21(月) 01:04:09
使える
371369
垢版 |
2008/07/21(月) 16:02:40
>>370
ありがとうございます。
2008/07/23(水) 03:29:38
WindowsMobileのGDI+って.NET専用?
2008/07/23(水) 13:14:31
いいえ。ネイティヴでも使えます。
2008/07/30(水) 00:23:52
優先度の高いスレッドでSleepしながらループしていても、
他のスレッドで重い処理をしているとなかなか順番が回ってきません
itronの周期ハンドラのように、確実に、正確な時間に
処理が回ってくるような方法は無いでしょうか?
375デフォルトの名無しさん
垢版 |
2008/07/30(水) 07:50:07
timeBeginPeriod(1)するのと、重い処理をしている他のスレッドの優先度を下げてで合間にSleep(0)入れるようにすると改善されるかも。
2008/08/06(水) 09:38:48
WindowsCE上のアプリ開発について質問
昔はembedded VCを使った記憶があるんだけど
今は(名前は知らないけど)SDK+VS2005の組み合わせで出来るのですか?
2008/08/06(水) 10:22:39
最新のSDKを使うならVS2008が必要。
2008/08/06(水) 10:26:26
ありがとうございますm(_ _)m
2008/08/06(水) 22:47:31
>>377
いくら2chとはいえ、さらっとガセ情報というのは関心せんな。
最新のSDKってWM6 SDKか?だったらVS2005でも使えるだろう。
もしPlatformBuilder6のことなら逆にVS2008未サポートのはずだが?
380デフォルトの名無しさん
垢版 |
2008/08/08(金) 00:41:18
beginthreadってつかえないの?
CreateThreadだとCランタイム関数が使えないらしいので置き換えがめんどくせー
sprintfの代替なんてあるのかしら?
2008/08/08(金) 04:00:40
>>380
wsprintfとか?
2008/08/09(土) 15:43:23
WindowsCE 上で作成したダイアログベースのプログラムで
リストコントロールを使用しています。
デバッグ用の簡単な情報を出しているのですが、
メモリ使用量が 4KB ずつ増えていく問題に気が付きました。
最大行数を設定しているので、出力している量が原因では
ないと思いますが、なぜ増え続けるのでしょうか?
383382
垢版 |
2008/08/09(土) 15:47:26
補足です。

new などによるメモリ確保やハンドル取得は行っていません。
2008/08/09(土) 20:02:10
ソース出せば?
2008/08/09(土) 21:54:11
>>380
CEはXPなどとはライブラリ構成が全く違うので、Cランタイム云々を意識する必要は無い。
そもそもCEではsprintfもCreateThreadもcoredll.dllがエクスポートしている。
2008/08/10(日) 17:37:47
zero3買って試しにちょっとしたアプリ作ってみようとしたら
sdk日本のMSサイトにないのかよ!
30分くらい探しちまったぞ
2008/08/10(日) 18:33:32
日本MSは全然MSDNの翻訳しねーよな
だから日本でXBOXが売れねーんだよ
そういうのって関係あると思う
2008/08/10(日) 19:10:55
そもそも英語版以外のMSDNって日本語以外にあるのか?
389386
垢版 |
2008/08/10(日) 20:15:51
練習でVBで数字の早押しゲームを作ってみた。
key_downイベントで0から9のボタンのキーコード拾ってるんだけど、日本語入力モード
じゃあキーが反応してくれない。数字入力モードにいちいち手動で変えるのはダサイと
思い起動時に変換モードを変えようとしたが、helpの海で溺れました。
CE開発はVBAちょっと組める程度の俺には荷が重いのか、資料なさすぎだよorz
2008/08/11(月) 01:56:00
愚痴スレ逝けや
ここはテメーの日記じゃねーんだよ
2008/08/11(月) 04:56:20
>>390
まぁお前のストレス発散場所でもないけどな。
2008/08/11(月) 12:43:47
>>389
PreTranslateMessageで処理しようぜ
2008/08/11(月) 12:45:04
>>382
リストに限らずWindowsのこんとろーるってCEditとかも4KBずつ内部でヒープを圧迫するよ。
通常は再利用フラグが立てられているから終了するまでそのまんまなはず。
2008/08/11(月) 19:30:47
>>392
ありがとう
でもhelp見てもさっぱりわけわかめだったよ
もっと勉強するわ
395899
垢版 |
2008/08/11(月) 21:44:02
色々help見てImeModeプロパティって見つけてよっしゃ!と思ったが
WMじゃサポートしてないぽいorz
またチラ裏でスマン・・・・・・
2008/08/11(月) 22:53:05
程度低すぎ
2008/08/11(月) 23:47:35
そうやって新参を叩くのは頭のデカイやつの悪い癖だな。
お前らだって最初から出来たわけではないだろうに。

まぁ苦労して覚えたのはわかるがな。
2008/08/12(火) 06:55:04
最初から知ってたわけじゃないが、最初から本買って調べる事くらいはしたもんだ。
調べりゃすぐわかる程度の事だし、そういう意味では「すぐ出来た」よ。
つーかここはCEスレであって、VB初心者スレじゃねーっつの。
2008/08/12(火) 07:25:15
教えてクレクレ言ってるわけでもなく、彼なりに試行錯誤してるのを
なんでいちいち叩くんだか
大人になれよ
2008/08/12(火) 07:37:09
日記は日記帳に書けってことだろ
2008/08/12(火) 08:31:15
また無限ループ書いてるよ・・

これだけしつこいと何か勘ぐってしまうな。
WMが広まって欲しくないのかな??

>>399を読んでないのか・・?
2008/08/12(火) 10:21:27
いやいや、それもこれもWMが糞だからじゃねーの?w
2008/08/12(火) 10:33:35
>>395
だからPreTranslateMessage以外でキー処理は無理よ?
2008/08/12(火) 13:56:46
>>399
技術系の実用スレだから、どちらかというと教えてクレクレ言うべきスレだと思いますが?
試行錯誤して結果が出たので報告しに来たとかなら解りますが・・・。
2008/08/12(火) 15:49:20
じゅあ教えてやればいいじゃん
2008/08/12(火) 16:21:24
>405
脳に障害でもあるのか?
>392,>403
答え出てるのに愚痴ってる意味もわからんし、擁護してるアホはもっとわからん
何がしたいんだ?
2008/08/12(火) 18:03:52
んなことで必死になってるお前が分からんよ
リストラにでもあったか?
2008/08/12(火) 18:20:58
>>402
その点については異論はないw
なんちゃってnet対応でちょっとしたことはすぐ用APIじゃあ
初心者は寄りつかんわ
2008/08/12(火) 21:50:51
>>最初から本買って調べる事くらいはしたもんだ。

>>技術系の実用スレだから、どちらかというと教えてクレクレ言うべきスレだと思いますが? 
 
┐(´д`)┌ヤレヤレ
410デフォルトの名無しさん
垢版 |
2008/08/14(木) 17:52:19
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」

http://gacco.o0o0.jp/
http://yutori.2ch.net/test/read.cgi/news4vip/1218673130/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
 *サーバー側
  言語はRubyかPerlの予定ですが、Perlが有力候補。
  ・チャット
   定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
   通信するときのフォーマットは未定。
  ・ログイン・アカウント管理
   ログイン認証、各アカウントの点数などの管理。データベースは未定。
  ・お絵描き
   未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
 *クライアント側
  はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
 「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
 挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
 サイトのデザインを考えてくれる人、作ってくれる人募集中。
 できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
2008/08/16(土) 19:31:41
[質問]プッシュメール検知のやり方を知りたい
[環境] VC++2005pro(C++)& WM6 Standard SDK ターゲットデバイス=WM6(AdvancedES/Willcom)
[目的]プッシュメール(キャリアの提供する自メールアドレス宛てのメール)受信をトリガとして、
メールの中身を解釈してアプリを起動させたりしたい。(メーラーもどき?)
 
参考サイトや検索さくする際の単語なりのヒントなどありましたら
教えていただければと考えています。

2008/08/16(土) 20:59:11
>>411
自動受信のタイミングの検知はPhoneStatusのStatus15を監視すればいけるけど
2008/08/16(土) 21:38:10
>>412
貴重な情報ありがとうございます。
恐らくこれで目的のことが達成できそうです。

ありがとうございました。
2008/08/21(木) 11:06:17
ちょっと質問、プログラム起動時に自動的にIDC_WAITカーソルが表示されるのと、されないのが
あるんだけどこれって、イニシャル処理の負荷とかで勝手に表示しれくれてるの?
単純なCreateDialogするアプリでウェイトカーソルを表示したくないんだけど
環境:VC++2005pro(C++)& WM6 Standard SDK ターゲットデバイス:WM6(X02HT)
2008/08/21(木) 11:21:50
そんなわけがない。表示しなければカーソルはでてこない。
2008/08/27(水) 07:25:14
CEGCCでSDLをビルドしたいのですが解説してるような所が見つかりません。
どなたか教えて頂けませんでしょうか。
NGNG?2BP(1)
>>416
http://itkz.blogspot.com/2008/08/cegcc-sdl.html
はい、パッチ書いたからブログに載せといたよ。動作確認済み。
かなり適当なパッチだから注意してね。
418デフォルトの名無しさん
垢版 |
2008/08/27(水) 21:36:04
すみません、どなたかわかる方いらっしゃったら教えてください。


◆状況
現在作成中のPocketPC向けアプリがあるのですが、海外向けも視野に
入れているため、ロケール(特に数値のロケール(LC_NUMERIC))を
指定しています。

ロケールの指定には、setlocale()関数を使用しているのですが
コンパイルは通るもののリンクでエラーになります。

色々調べたのですが、なんというライブラリをリンクすればいいのか
どうしてもわかりません。どなたかご存知の方いらっしゃいませんでしょうか。

<ソースコード>
char*
my_setlocale( int c, const char *l )
{
return( ::setlocale(c, l) );
}

<エラーメッセージ>
error LNK2019: 未解決の外部シンボル setlocale が関数 "char * __cdecl my_setlocale(int,char const *)" (?hoge@@YAPADHPBD@Z) で参照されました。



◆開発環境
VC++2005
Windows Mobile 5.0 Pocket PC SDK (ARMV4I)
2008/08/27(水) 21:52:54
>>418
とりあえずその関数を定義してるヘッダファイルを見てみたら?
あとヘルプに載ってないの?
2008/08/27(水) 22:18:32
>>419
ありがとうございます。

ヘッダファイルは160行程度なので一通り目を通しましたし、ヘルプも目を通したんですが
今のところ特に参考になりそうな記述は見つかってません。
2008/08/27(水) 22:29:54
>>420
WMではサポートされてなかったような。
MSDNで確認してみてください。
2008/08/27(水) 22:39:04
>>421
ありがとうございます。

うーーん、そうなんですか。

テキストデータをパースする際に、欧州の一部では小数点が
ピリオド(.)ではなくカンマ(,)だったりするので強制的に数値の
ロケールを設定したかったのですが、サポート外だとすると
実数値のパースに関してはscanf系関数ではなく、独自関数を
使うなどするしか手はないのですかね、、、

しかし、サポート外ならばSDKのインクルードフォルダにヘッダだけ
用意するような中途半端なことはやめてくれるとnaa.
2008/08/27(水) 22:44:40
>>422
自力でやらなくても大抵別の手段が用意されています。
まずはそっちを
2008/08/27(水) 23:47:39
>>423
ありがとうございます。

そうですね、車輪の再発明は確かに避けたいところですが、scanf以外に
何か(数値ロケールの問題を回避できるもので)あったかな。

うーーーん、思いつかん(^^;
2008/08/29(金) 19:05:11
CEは_wsetlocaleしかないだろうJK
2008/08/30(土) 11:43:55
>>425
そういう問題じゃないだろ。
だいたいCランタイムはANSI版とUnicode版の両方が入ってる。
fopen・_wfopenだって両方使える。

CEにはsetlocaleも_wsetlocaleもない。
427418
垢版 |
2008/08/30(土) 16:12:39
すみません、一応問題が解決(?)しましたのでご報告。


結論から言うと、アプリケーションのデータ仕様をロケールに影響されない内容に
変更することにしました。

具体例としては、以下のような感じです。
・CSVファイルの中の実数値(例:123.4)
→1000倍した整数値に変更。(例:123400)


今回は、私にデータ仕様の決定権があった点、データの精度や
処理効率から見ても問題ない点などからこのような
判断になりました。


知恵を貸していただいた皆様、どうもお世話になりました。
2008/08/31(日) 00:21:52
>>427
乙。CEにロケールは鬼門だね。

自分はUnicode<=>中国GB/韓国KSの変換関数作ったな。
2008/08/31(日) 01:04:24
ロケール対応の文字列比較関数 wcscoll もCEでは使えないよね。
この辺なんとかならないかな。
2008/08/31(日) 11:36:55
それは API の CompareString があるでしょ。
2008/08/31(日) 11:40:03
そういえば>>418のもSetLocaleInfoとかでいけたんじゃないか。
432429
垢版 |
2008/08/31(日) 12:05:05
めちゃくちゃサンクス。
こんなのが有ったのか。色々ぐぐったつもりだったんだが。

しかし、こういう代替関数ってどうやって探せばいいんだろうか。
2008/08/31(日) 16:23:47
代替関数を探すというより、最初からその目的で探したほうがいいよ。
「ロケール 文字列 比較」で一番上にCompareStringは出てくるし。

まあ、CompareStringはWin32 APIと共通だからいいけど、CEは全体的に情報少ないよね…。
434デフォルトの名無しさん
垢版 |
2008/10/03(金) 22:47:58
WindowsCE5.0のアプリをVB.NETで開発しています。
そこで、質問ですが
WindowsCE5.0のファイルシステムのブロックサイズはいくつなのでしょうか?

というのも、データ用に小さいサイズのファイル(100バイト程度)がたくさん(数万)あるんですが
容量としては、数メガのはずなのに、メモリ(フラッシュ)の消費量をみると、それ以上に消費しているのです。
いろいろ検索しているのですが、うまく見つけることが出来ません。
2008/10/03(金) 23:16:08
CEにかぎらずそのファイルシステムをフォーマットするときに選べるんじゃないの?
2008/10/05(日) 11:34:58
>>434
CE 5.0のフォーマットは TFAT みたいです。細かいセクタサイズとかは自分で調べてね(面倒だからw)

What File System does Windows Mobile use?
ttp://blogs.msdn.com/jasonlan/archive/2007/03/13/what-file-system-does-windows-mobile-use.aspx
2008/10/07(火) 03:12:51
今時そんなこと気にせんでもいいと思うが
2008/10/07(火) 13:07:30
WM5でtodayの壁紙設定するAPI教えてくだはい
2008/10/07(火) 21:15:31
>>438
事故レスになるが、とりあえず下記で見っけましたので報告でふ

http://www.pocketpcdn.com/articles/changetodaytheme.html
2008/10/24(金) 02:53:31
WMデバイスでDPIの取得ってどうやればできますか?
GetDeviceCaps 以外でなにかあれば教えてください
2008/10/30(木) 12:16:38
>>440
レジストリに書いてるだろう
442434
垢版 |
2008/11/22(土) 15:09:58
>>436

恐ろしく遅レスですが、512バイトのようですね。
ありがとうございました。

The theoretical limit for TFAT is 2 TB, with 512 byte sectors. File systems up to about 500 GB have been tested.

2009/01/07(水) 18:12:01
eVC4でPocketPC(Windows CE3.0)のプログラムは作れる?
eVC3でないとだめ? 機種はjornada548(sh3)です
■ このスレッドは過去ログ倉庫に格納されています