トップページtech
1001コメント313KB

BREW(Binary Runtime Environment for Wireless) 9

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/12/21(木) 13:37:32
BREW(Binary Runtime Environment for Wireless)についてのスレ

■テンプレ
http://brew.s214.xrea.com/pukiwiki/
http://kintubo.kakiko.com/brew/

■前スレ
08 http://pc8.2ch.net/test/read.cgi/tech/1147832791/

■過去スレ
07 http://pc8.2ch.net/test/read.cgi/tech/1137502541/
06 http://pc8.2ch.net/test/read.cgi/tech/1126846736/
05 http://pc8.2ch.net/test/read.cgi/tech/1119056460/
04 http://pc8.2ch.net/test/read.cgi/tech/1111028365/
03 http://pc5.2ch.net/test/read.cgi/tech/1096006023/
02 http://pc5.2ch.net/test/read.cgi/tech/1076511398/
01 http://pc2.2ch.net/test/read.cgi/tech/1011078904/

関連情報 >>2-10
0357デフォルトの名無しさん2007/04/02(月) 08:23:13
(・∀・)ウォ・ッップバル!
03583452007/04/02(月) 11:13:27
>>356
ありがとです。
おかげでエラーコードを拾えるようになりました。
サーバ側と詰めてきます。

強引なキャストだと思っていたら
見ている資料が古すぎたってことか(;´ρ`)
0359デフォルトの名無しさんNGNG?2BP(0)
組み込み&BREW初心者のJava開発者です。

BREWでC++って使っていますか?
Better Cという意味でのC++ではなく、クラスなどのオブジェクト指向としてのC++って意味です。

組み込みやった先輩(BREWは初心者)から、
組み込みは基本的にC。BREWやってた人からBREWでC++やるとはまる、チャレンジャーだねという話を聞いた。
と言われました。

BREWでC++使えますでしょうか?
0360デフォルトの名無しさん2007/04/03(火) 09:49:01
>>359
使っていますが全く問題ありません。
0361デフォルトの名無しさん2007/04/03(火) 10:02:52
>>359
テンプレートが実質使えないから旨味が半減じゃまいか。
03623452007/04/03(火) 15:12:27
サーバ側と煮詰めたら無事繋がるようになりました。
SSLが遅い!との事でhttpに変更になりました。
ソース全部破棄しました。
本当にありがとうございました。
0363デフォルトの名無しさん2007/04/03(火) 15:33:39
>>359
うちも基本的に C++ で書いてる。

>>361
テンプレートは使えるには使えるんだが、容量の都合で用途は限定されるべ。
0364359NGNG?2BP(0)
皆さん、レスサンキューです。
C++で問題ないみたいなので、C++で行こうと思います。
0365デフォルトの名無しさん2007/04/04(水) 02:50:59
>>364
RVDS2.1以降でC++のサポートが強化されてる
namespaceとかtemplate回り
金があるならRVDS買えば幸せになれるかも

>>362
UIMカード搭載端末限定だとたぶん回避策あるんだが...それで問題なければ問い合わせて見れ
0366359NGNG?2BP(0)
>>365
RVDSで幸せになれるというのをもう少し教えてください。

VCだとVCのコンパイラーで通れば何でも書けちゃうけど、
RVDSだとIDEがBREW(ARM)用のC/C++に対応してるとかですか?

BREWのSDKに付いてるエミュレーターは、なんちゃってエミュなので、
Windows上でBREW用のソースでテストとかできるなら嬉しいですけど。
0367359NGNG?2BP(0)
あと、RVDSの価格ですが、バージョンちょっと古い価格表がここに載ってました。
今でも$6000ぐらいからですか?
http://www.jp.arm.com/kk/summary/price.html

0368デフォルトの名無しさん2007/04/04(水) 10:11:55
いやコンパイラがC++のより高度な文法をサポートしてるだけ
BREWに関してはデバッグ環境はかわらんよ

値段はシラネ
0369デフォルトの名無しさん2007/04/04(水) 13:09:34
おれは C++ で開発してるけど、GNUARM しか使ってない。
0370デフォルトの名無しさん2007/04/05(木) 00:41:48
GUNDA(ry
0371デフォルトの名無しさん2007/04/05(木) 11:33:28
>>370
これのことか?
ttp://www1.interq.or.jp/t-takeda/rx78/index.html
0372デフォルトの名無しさん2007/04/05(木) 21:52:14
またえらくなつかしいもんひっぱりだしてきたな
0373デフォルトの名無しさん2007/04/05(木) 21:58:13
SecurityPass・・・
0374デフォルトの名無しさん2007/04/11(水) 10:39:53
保全.NET 2005 Express Edition。
0375デフォルトの名無しさん2007/04/13(金) 09:43:26
通信中や処理中にキーを連打すると、
通信や処理終了後に連打した分のキーイベントが、
全て起こってしまうんですが、
これを上手く回避する方法はないでしょうか?
0376デフォルトの名無しさん2007/04/13(金) 10:08:13
無視すればいいんじゃね?
0377デフォルトの名無しさん2007/04/13(金) 13:36:30
二つとか三つとか音楽を同時に再生をスタートさせる方法ってある?

IMEDIA_Playを並べて書いてみたらズレまくって困る
0378デフォルトの名無しさん2007/04/13(金) 13:45:32
普通に2つ並べて書いて問題起こったこと無いな。
データがおかしいのかも。
0379デフォルトの名無しさん2007/04/13(金) 14:09:01
なんと言えばいいのかな。
全部の音は、鳴ることは鳴ってるんだけど。

ただ、並べて再生してみたら数ミリ秒とかそんなぐらいなんだけどスタートがズレてて、
後ろに書いた方がタイミングがズレてるような感じを受けるんだ。
0380デフォルトの名無しさん2007/04/13(金) 14:28:16
FA:そんな厳密な同時性を携帯端末に求めるな
0381デフォルトの名無しさん2007/04/13(金) 15:24:41
IFileMgr_GetFreeSpace(IFileMgr * pIFileMgr, uint32 * pdwTotal)
の *pdwTotal って何?
0382デフォルトの名無しさん2007/04/13(金) 15:56:59
>>381
BREWAPIReference.chm
03833812007/04/13(金) 16:43:56
>>382
すんません。
「ファイルシステムで現在使用可能な空きバイト数」(戻り値)とはちがう、
「ファイルシステム内の合計空き容量」(*pdwTotal)って何だ?と思って。
k-brew-testでほぼ目一杯にしてて、*pdwTotalがEFS全体に近いような値だったので、
これ何だろと。
他のアプリも含め、アプリが作成したファイルを全部削除した場合の空き容量とか?

>>381
最初からそう書いとけ
0384デフォルトの名無しさん2007/04/13(金) 17:43:50
気にしなくていいと思う。
03853812007/04/13(金) 18:26:37
なるほど、そうしてみる。(・∀・)
0386デフォルトの名無しさん2007/04/13(金) 22:06:49
>>383
>「ファイルシステムで現在使用可能な空きバイト数」(戻り値)
EFSのうちの空き容量。

>「ファイルシステム内の合計空き容量」(*pdwTotal)って何だ?
EFS全体のサイズ。だからTotal。
システムが占有する分がいくらかあるだろうから仕様書の値とは若干違う。
だから「EFS全体に近いような値」(であって大きく外れた値ではない)。
0387デフォルトの名無しさん2007/04/17(火) 10:28:43
すみませーん。
IDATAFOLDER_SelectUI なんですが、
第4引数の dwMaxFileSize の説明に
『選択するファイルサイズ合計値の上限。(単位はKB)』
とあるので100と指定してみたのですが、
余裕で100KB超のファイルを選択できます。
仕様と思っていいんでしょうか?

テストに使用している機種はW42SAで、
端末仕様書を見る限り特に制限とか書いてないようなんですが。
0388デフォルトの名無しさん2007/04/17(火) 16:49:48
>【複数選択時の残表示について】
(略)
>この機能は移動機依存であり、実装されない移動機もあります。

こういうことじゃない?
0389デフォルトの名無しさん2007/04/17(火) 22:00:22
KDDI向けのBREW3.1日本語で開発していますが、質問です。

世に出回っているアプリ起動中に、電源ボタンを押すと、

xxxを終了します。よろしいですか?
1中断する
2終了する
3キャンセルする

と端末共通ぽいダイアログがでますが、これの呼び出し方法が判りません。
何かの設定をすると自動で出るのか・・・KDDIのライブラリを呼ぶのか・・・色々調べたけどダメでした。
判る方居たらよろしくお願いします。
0390デフォルトの名無しさん2007/04/17(火) 22:13:50
>>389
サービスガイドを「ダイアログ」で検索。
0391デフォルトの名無しさん2007/04/17(火) 23:04:23
>>389
サービスガイドはひととおり読んだほうがいいんじゃないでしょうか・・・
あと、事前検証手順書とチェックシートは今のうちに一回眺めておくと
後で幸せかもしれません。
0392デフォルトの名無しさん2007/04/17(火) 23:04:24
>>389
その周りって、2.1と3.1でスペックが微妙に違うよな。2.1だと何も考えなくても
よかったんだが
03933892007/04/17(火) 23:44:10
レスくれた方ありがとう、読み直してきます。
03943872007/04/18(水) 10:16:14
>>388
どうやらそのようで。
今日別の端末が届いたので同じアプリを入れてみたら、
「あと100KB」と表示が出ましたとさ。

その文言はどう見ても「複数選択」の方に
かかりそうな気がするんだが・・・
何だかなぁ(゜д゜)
0395デフォルトの名無しさん2007/04/22(日) 00:55:32
BREW携帯に送れないの?意味無いような・・・
0396デフォルトの名無しさん2007/04/22(日) 02:00:22
>>395
試験モードになってりゃシリアルケーブルで送れるよ。
sigファイルを定期的に取り直せば勝手アプリだって
自由に動かせるよ。便利だよ。
0397デフォルトの名無しさん2007/04/22(日) 02:14:57
くそー
メンテのせいで仕事がーーー
0398デフォルトの名無しさん2007/04/22(日) 02:38:08
メンテなんてやめんて
0399デフォルトの名無しさん2007/04/22(日) 03:29:23
這(゚Д゚ )
0400デフォルトの名無しさん2007/04/22(日) 18:39:15
検証提出直前3日前だと笑い死ぬと思う。
0401デフォルトの名無しさん2007/04/22(日) 19:03:23
メンテで提出日に出せません

あーん?聞こえんなぁ
徹夜してでも間に合わせろ

なんとか終わらせました

あーん?何徹夜残業してんだよ

メンテでできなかったからです

あーん?そんなもん知ったことか
ちゃんと計画立ててないのが悪い
残業代でないからな
0402デフォルトの名無しさん2007/04/22(日) 22:15:17
もっともだ・・・
0403デフォルトの名無しさん2007/04/22(日) 22:41:04
もともと残業代のない俺は勝ち組
0404デフォルトの名無しさん2007/04/24(火) 15:08:09
20日に検証中に変わったんだが 一向にこちらのサイトにアクセスがない。
もしかしてsigファイルとれなくて実機での検証がまだとかなのだろうか・・・
0405デフォルトの名無しさん2007/04/24(火) 17:34:24
検証始まったんなら、ぼちぼち作業が進むんでない?
まだ3営業日しか立っていないんで、何とも言えない希ガス。
0406デフォルトの名無しさん2007/04/25(水) 01:22:22
>>405
18時位からアクセスが来た。しかもこの時間になっても検証作業してる。
がんばれ検証ラインの中の人。
0407デフォルトの名無しさん2007/04/25(水) 01:53:37
じゃあ、やっぱりsigか?
無効も迷惑こうむってたんだな・・・
0408デフォルトの名無しさん2007/04/25(水) 13:17:02
なんか、最近は検証も外注とか何とかそういう話が出ているようですね。。。
0409デフォルトの名無しさん2007/04/26(木) 07:47:57
がんばれ、KDDI検証の人!
連中にはいろんな意味で頭があがらないぜ。
0410デフォルトの名無しさん2007/04/27(金) 00:49:42
最近も何も、初めっから検証は外注
0411デフォルトの名無しさん2007/04/27(金) 01:05:36
検証通ったようでステータスが登録中になったよ。ありがとう中の人。
0412デフォルトの名無しさん2007/04/27(金) 02:24:51
sig、なおらないねー・・・
0413デフォルトの名無しさん2007/04/27(金) 09:56:08
gnudeの情報は出ていましたが、WinARMって誰かもう使ってますか?
ソースはC++で、静的変数をいっぱい使っていたりするんですけれど。

それから、こちらはRVDS2.xが前提みたいですが、lightblueの
modジェネレータって、誰か使って成功しています?
0414デフォルトの名無しさん2007/04/27(金) 13:17:34
sigとれるようになったー
・・・って有効期限が1年になってるけど、あってるの?これ・・・
0415デフォルトの名無しさん2007/05/01(火) 01:52:48
みんなデスマってるか〜?
0416デフォルトの名無しさん2007/05/01(火) 09:15:07
ん? 俺は連休中だ
0417デフォルトの名無しさん2007/05/01(火) 21:11:37
>>416
いいなぁ、お前、どうせ去年からずっと連休なんだろ?
0418デフォルトの名無しさん2007/05/02(水) 00:35:20
さすがにそこまでのヤツはこのスレには来ない予感
0419デフォルトの名無しさん2007/05/07(月) 14:34:57
黄金連休は9連休だった。
0420デフォルトの名無しさん2007/05/07(月) 15:21:34

  こ れ か ら 2 ヶ 月 祝 日 な し

0421デフォルトの名無しさん2007/05/07(月) 15:45:37
祝日があっても休めなかったりするのに
何言ってんだ?(・ω・)
0422デフォルトの名無しさん2007/05/07(月) 20:00:22
休めるわけじゃないが、遅刻しても平気なだけマシなのだな
0423デフォルトの名無しさん2007/05/07(月) 22:28:33
しかし連休明けと同時に書き込みが始まるのは判り易いよな
0424デフォルトの名無しさん2007/05/07(月) 22:37:54
Javaのインターフェースのような振る舞いをさせたい場合はどうしたらいいんだろう?

クロスキャストで質問なんだが。。。
Javaからの移植を今やってる。で以下の継承ツリーを持つクラスがある。

Object -> ClassA -> ClassB -> ClassC -> ClassD
                ↑      ↑
       Object -> ClassE     ↑
                       ↑
       Object -> ClassF -> ClassG

※)みぎにいくほどサブクラス。ClassE,ClassF,ClassGはJavaではインターフェース。
BREWでは純粋仮想関数だけを持つクラス

ちなみにClassBの宣言は
class ClassB : public ClassA, public virtual ClassE

ClassCの宣言も同様に
class ClassC : public ClassB, public virtual ClassG

でこのクラスに対して

ClassD* classD = new ClassD();
ClassC* classC = (ClassC*)classD;
ClassB* classB = (ClassB*)classC;
Object* obj = (Object*)classB;
とUPキャストしてObject型にする。んでそのあとに

ClassG* classG = (ClassG*)obj;
classG->hoge();
をやるとまったく違う関数が呼ばれてしまう。。。。どうしたらいいんだろ。。。。
0425デフォルトの名無しさん2007/05/08(火) 02:07:48
何で仮想継承してるのか分からんけど、普通に多重継承させて

ClassG* classG = static_cast<ClassG*>(static_cast<ClassD*>(obj));
obj->hoge();

でいけることない?
0426デフォルトの名無しさん2007/05/08(火) 02:57:58
仮想継承消して実験してみたら、↑のは曖昧って怒られた。
むかついたからこんな風にしてみた。

IClassG* classG = (IClassG*)(ClassD*)(ClassC*)(ClassB*)(ClassA*)obj;
classG->ClassGFunc();

今は反省していない。

>>424
Object にキャストしたときにはもう元の型情報が失われてるから、
ClassG* にするために何バイトオフセットをずらせばいいかが分からない。
だから正しい型(ClassG を継承した型)に戻した上で ClassG* にキャストしてやる必要がある。
0427デフォルトの名無しさん2007/05/08(火) 04:12:34
>>426
それでいけるのも分かるのだが、
しかしそうすると、たとえばIClassGを実装したクラスが
3つあるとすると、それらをIClassG型で扱いたいのに、いちいち元の型を
しらべて、それに一度キャストしてからIClassGに戻すということをしないといけない。

JavaではIClassG型として受け取れば元の型が何であろうと
IClassG型のメソッドは呼べる。

できればJavaと同じ振る舞いをさせたいんだけどいい方法ないかなぁ・・・・

COMのQueryInterfaceみたいなのを作るしかないのかな・・・・・
04284272007/05/08(火) 04:16:36
追記。
いったんObject型にしちゃうのは、JavaでいうVectorみたいな
可変長配列に入れてるためです。
templateにしてないのはプリミティブ型を入れたくないから。

まぁ元がJavaからの移植なのでできるだけJavaのコーディングを
真似したいということです。
0429デフォルトの名無しさん2007/05/08(火) 08:55:57
>>428
少々めんどくていいなら、
struct Object
{
  int type;
  void* obj;
};
こんな感じのクラスを可変長配列に格納すればいいんじゃないかと。
受け取った側は type を見て適切な型に頑張って自分でキャストする、と。

>>427
それをするためには RTTI が不可欠になってくるので、
自分でそういった機構を作る必要が出てくるだろうなぁ。
正直俺はやる気がしない。
0430デフォルトの名無しさん2007/05/08(火) 18:29:48
ARMのコンパイルしたら
#include file "なんたら" wouldn't open
がズラーっと並ぶ。
なんたらのところは追加インクルードディレクトリの中にあるヘッダーファイル

どのへんをいじってみたらいいのかもわからんボスケテ
0431デフォルトの名無しさん2007/05/08(火) 20:39:47
>>430
-Iオプションで追加インクルードディレクトリを指定してあげたらいいんじゃないかな。
0432デフォルトの名無しさん2007/05/10(木) 09:56:59
>431
助かった。解決!
0433デフォルトの名無しさん2007/05/10(木) 21:53:07
Cメールを受信すると一瞬停止する現象が起きます
W32SA端末です
0434デフォルトの名無しさん2007/05/11(金) 00:10:01
>>433
そうですか。
04354332007/05/11(金) 01:29:06
Cメール受信時の動作についてはどんな資料見ればよいでしょうか?
支援サイトの資料はあるのですが、「W32」「メール」で検索したのですがダメでした。
アドバイスお願いします
0436デフォルトの名無しさん2007/05/11(金) 02:58:29
どのドキュメントにも載ってないだろうし、
その件は技術サポートに質問するような内容だね。
0437デフォルトの名無しさん2007/05/11(金) 04:17:22
意味がわからなかったけど、
BREWアプリが停止するって意味か。
サポートに聞けとしか(ry
04384332007/05/11(金) 09:10:37
問い合わせてみます。
0439デフォルトの名無しさん2007/05/13(日) 10:28:50
質問です。環境はC++&ARMコンパイラです。

class Object と class Hoge : public Object があり、
Hoge を社内ライブラリのスマートポインタに格納しました。
SmartPtr<Hoge> spHoge(new Hoge());

そしてスマートポインタから生のポインタを取り出すのですが、
Hoge* pHoge = spHoge.getPtr();
Object* pObject = spHoge.getPtr();
void* pUnknown = spHoge.getPtr();
この時、pObjectにだけ 他で得られたポインタ値-8 が格納されていました。

SmartPtr<Hoge>::getPtr()の実装は、内部で持っているダブルポインタ
Hoge** p を、 return *p として返しているというようなものです。

この、返すべきポインタの型によって、
ポインタ値-8されてしまうのは、何故なのでしょうか?
VCとエミュレータでやってみても再現しないため、
ARMコンパイラの何らかの機構によるものではないかと思うのですが、
私には、それが何であるのか今のところ分かっていません。

他にも同じ経験をされた方や、詳しい方いらっしゃいましたら是非ご教授くださいませ。
0440デフォルトの名無しさん2007/05/13(日) 16:56:39
>439
pHoge を Object* にキャストした場合はどうなる?
>class Hoge : public Object
単一継承じゃなくて多重継承してたりとかしない?
>この時、pObjectにだけ 他で得られたポインタ値-8 が格納されていました。
+8 じゃなくて、-8?
04414392007/05/13(日) 21:12:40
>>440
返信ありがとうございます。

>pHoge を Object* にキャストした場合はどうなる?
pHoge を Object* へというのはちょっとやっていませんでした。
明日試してみます。

>単一継承じゃなくて多重継承してたりとかしない?
・・実は多重継承しています!
本当はこのような継承構造になっています。
class Hoge : public Object , public Factory<Hoge>
Factoryは、static T CreateInstance()メソッドを持ち、自分自身を
確保してあるメモリプールから生成出来るようにしており、
new Hoge() も実際は、Hoge::CreateInstance() となっています。
Objectは、いくつかの変数と仮想関数を持っています。

情報の後出しをしてしまい、申し訳ありません。
多重継承だとVTBLが複雑になるといった情報を先ほど知ったのですが、
その影響ということなのでしょうか?

>+8 じゃなくて、-8?
そこを突っ込まれると、メモって来たわけではないので
ちょっと自身がないのですが、確かpObjectだけ他-8だったように思います。
明日詳しく調べてきます。
0442デフォルトの名無しさん2007/05/14(月) 00:45:51
>>424 と同じ悩みだな。
「BREW Java 風 クラス」とかでググるといいかも。
0443デフォルトの名無しさん2007/05/14(月) 02:52:27
>441
>多重継承だとVTBLが複雑になるといった情報を先ほど知ったのですが、
>その影響ということなのでしょうか?
vtbl よりもメモリレイアウトの方かな。
派生クラスのオブジェクトの一部に基本クラスのオブジェクトが含まれる。
仮に、Hoge クラスのレイアウトが次のようになったとする。

Factory<Hoge> の内容
Object の内容
Hoge 独自の内容

このとき、Hoge * はオブジェクトの先頭を指すので「Factory<Hoge> の内容」の先頭を指している。
void * へキャストする際は、そのままオブジェクト先頭を指すので「Factory<Hoge> の内容」の先頭を指す。
Object* へキャストする場合は、内部の基本クラスのオブジェクトの先頭を指すので、「Object の内容」の先頭を指す。
なので、Factory<Hoge> の内容(とパディング)で 8 バイト確保されている場合には、Object* へキャストするとポインタ値が +8 される。

多分、ARM コンパイラと VC でオブジェクトのメモリレイアウトが違うんじゃない?
04444392007/05/15(火) 01:45:15
すみません、Object*で返ってきたポインタ値は、皆さんの仰るとおり+8でした。
どうやら逆に勘違いしていたようです。

>>443
なるほと、そういうことなのですね。
あれから自分でも色々試し、色々と分かるようになりました。

私も途中で>>424の問題とぶつかりましたが、私の場合は
基本的にスマートポインタを使うようにし、派生クラスから基底クラスへキャストした際に
派生のポインタと基底のポインタから差分を取り、キャストオフセット値(?)として
スマートポインタ内部に保存して、必要なときに取り出せるようにしました。

これで大きな問題が解決でき、やっと作業が進行しそうです。
皆さん、本当にありがとうございました。
0445デフォルトの名無しさん2007/05/18(金) 00:30:07
今日のカンファレンスに出てたのって例のykubo氏か?
GJと言いたいとこだが、ちょっと喋るの早すぎないかw
0446デフォルトの名無しさん2007/05/18(金) 19:31:55
あああ、カンファレンス行き忘れた。
そもそも申し込みしてないんだが。w
0447デフォルトの名無しさん2007/05/22(火) 13:24:16
PCから端末へのアプリの転送速度を上げる良い方法知らないか?
過去ログ見たがケーブルが悪いとか赤外線があるとかあったが、いまいち良い情報が見つからない。
ちなみに今は純正使ってる。
誰かオススメあったらkwsk
0448デフォルトの名無しさん2007/05/22(火) 13:29:49
転送量を減らす
0449デフォルトの名無しさん2007/05/23(水) 03:51:18
なぁ、BREW2.1のアプリってまだ作ってる?
どうせユーザー数は少ないんだし切り捨てたいんだけど…

KではBREW2.1はとっくに眼中にないわけで
公式に「もうBREW2.1は忘れていいから、BREW3.1アプリに注力してよ」
とか言っちゃってくれると一番強力なんだけどなー
0450デフォルトの名無しさん2007/05/23(水) 09:01:23
WINの2.1なら容量がOKならまだ対応することもあるね
2.1でみると課金率下がってるから、もう少しで死滅するんじゃないのか、とは思ってるけど
0451デフォルトの名無しさん2007/05/23(水) 10:05:36
2.1のアプリってもう3.1で実績無いと作れないんと違うの?(´・ω・`)
0452デフォルトの名無しさん2007/05/24(木) 11:31:34
質問です。

ICAMERA_GetSizeListで撮影可能な写真のサイズを取得しようと
思っているのですが上手くいきません。
機種はW51Hです。

ttp://brewforums.qualcomm.com/showthread.php?t=9219
こちらの掲示板の内容を参考に次のような処理を作りました。

int Count = 0;
AEESize *pList;
boolean bRange;
ICamera* pICamera;

if( ISHELL_CreateInstance( pIShell , AEECLSID_CAMERA, (void**)&pICamera ) == SUCCESS )
{
pList = (AEESize*)CAM_MODE_SNAPSHOT;
if( ICAMERA_GetSizeList( pICamera , &pList , &bRange ) == SUCCESS )
{
for( ; pList[Count].cx > 0 && pList[Count].cy > 0 ; Count++ );
}
}
ICAMERA_Release( pICamera );

その結果、上記のfor文を実行した場合アプリが落ちてしまいます。
また、pListの中にはありえないようなサイズ(万単位×1とか0とか)の値が返ってきていました。
何が問題なのでしょうか。
0453デフォルトの名無しさん2007/05/24(木) 11:48:28
APIリファレンス見た?
bRangeは使わないの?
0454デフォルトの名無しさん2007/05/24(木) 11:49:59
NULLチェックしてないから永遠に続いてる
0455デフォルトの名無しさん2007/05/24(木) 14:45:32
ご回答有難うございます。

>453
NULL で終結した範囲のペアリスト (2 の倍数) とありますが具体的なイメージが掴めていません。
1バイトずつ見ていって00のバイトで区切ってcxとcyが設定されているといった感じなのでしょうか

また、bRangeの戻り値はFALSEだったのですが、APIリファレンスにはFALSEの場合が
載っていませんでした。FALSEの場合の資料は有るのでしょうか。

>454
ソース上の
pList[Count]に0が入っている状態がNULLだと思い、pList[Count].cx > 0 && pList[Count].cy > 0
といった条件にしました。
どの部分がNULLの場合、終端ということになるのでしょうか
0456デフォルトの名無しさん2007/05/24(木) 17:56:49
すみません
APIリファレンス見間違えました
ポインタじゃないのでpListの中身が0の時で合っているのかもしれません
■ このスレッドは過去ログ倉庫に格納されています