1 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 13:37:32 ] BREW(Binary Runtime Environment for Wireless)についてのスレ ■テンプレ brew.s214.xrea.com/pukiwiki/ kintubo.kakiko.com/brew/ ■前スレ 08 pc8.2ch.net/test/read.cgi/tech/1147832791/ ■過去スレ 07 pc8.2ch.net/test/read.cgi/tech/1137502541/ 06 pc8.2ch.net/test/read.cgi/tech/1126846736/ 05 pc8.2ch.net/test/read.cgi/tech/1119056460/ 04 pc8.2ch.net/test/read.cgi/tech/1111028365/ 03 pc5.2ch.net/test/read.cgi/tech/1096006023/ 02 pc5.2ch.net/test/read.cgi/tech/1076511398/ 01 pc2.2ch.net/test/read.cgi/tech/1011078904/ 関連情報 >>2-10
355 名前:345 mailto:sage [2007/04/02(月) 01:54:43 ] cainって何だよ○| ̄|_ >>352 メンバ変数は全て通信終了時まで保持しています。 COPYOPTSも指定してみましたがNG。 うーん、サーバ側の設定とかいうオチだといいなぁ・・・ エラーコードは常に WEB_ERROR_SSL で、 エラー時に下記を実行した結果の sslInfo.nResult の値は 0x1001003c でして・・・ >SSLInfo sslInfo; >IWEBRESP_GetOpt(m_iWebRes, WEBOPT_SSL_SEC_INFO, 0, &sslInfo); 意味不明だったので出そうか悩んでました。 ちなみに IWEBRESP_GetOpt はSUCCESSが帰ってきてます。
356 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 04:19:48 ] SSLInfoの参照の仕方が違う { SSLInfo * psi; WebOpt wo; DBGPRINTF("Web Error : %d", resp->nCode); if (IWEBRESP_GetOpt(pme->piwresp, WEBOPT_SSL_SEC_INFO, 0, &wo) == SUCCESS) { psi = wo.pVal; DumpSSLInfo(pme, psi); } SSLInfo * は wo.pVal に入る
357 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 08:23:13 ] (・∀・)ウォ・ッップバル!
358 名前:345 mailto:sage [2007/04/02(月) 11:13:27 ] >>356 ありがとです。 おかげでエラーコードを拾えるようになりました。 サーバ側と詰めてきます。 強引なキャストだと思っていたら 見ている資料が古すぎたってことか(;´ρ`)
359 名前:デフォルトの名無しさん [2007/04/03(火) 00:02:42 BE:973224285-2BP(0)] 組み込み&BREW初心者のJava開発者です。 BREWでC++って使っていますか? Better Cという意味でのC++ではなく、クラスなどのオブジェクト指向としてのC++って意味です。 組み込みやった先輩(BREWは初心者)から、 組み込みは基本的にC。BREWやってた人からBREWでC++やるとはまる、チャレンジャーだねという話を聞いた。 と言われました。 BREWでC++使えますでしょうか?
360 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 09:49:01 ] >>359 使っていますが全く問題ありません。
361 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 10:02:52 ] >>359 テンプレートが実質使えないから旨味が半減じゃまいか。
362 名前:345 mailto:sage [2007/04/03(火) 15:12:27 ] サーバ側と煮詰めたら無事繋がるようになりました。 SSLが遅い!との事でhttpに変更になりました。 ソース全部破棄しました。 本当にありがとうございました。
363 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 15:33:39 ] >>359 うちも基本的に C++ で書いてる。 >>361 テンプレートは使えるには使えるんだが、容量の都合で用途は限定されるべ。
364 名前:359 [2007/04/03(火) 23:58:24 BE:1094877195-2BP(0)] 皆さん、レスサンキューです。 C++で問題ないみたいなので、C++で行こうと思います。
365 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 02:50:59 ] >>364 RVDS2.1以降でC++のサポートが強化されてる namespaceとかtemplate回り 金があるならRVDS買えば幸せになれるかも >>362 UIMカード搭載端末限定だとたぶん回避策あるんだが...それで問題なければ問い合わせて見れ
366 名前:359 [2007/04/04(水) 06:52:51 BE:1021885867-2BP(0)] >>365 RVDSで幸せになれるというのをもう少し教えてください。 VCだとVCのコンパイラーで通れば何でも書けちゃうけど、 RVDSだとIDEがBREW(ARM)用のC/C++に対応してるとかですか? BREWのSDKに付いてるエミュレーターは、なんちゃってエミュなので、 Windows上でBREW用のソースでテストとかできるなら嬉しいですけど。
367 名前:359 [2007/04/04(水) 06:55:33 BE:1094877195-2BP(0)] あと、RVDSの価格ですが、バージョンちょっと古い価格表がここに載ってました。 今でも$6000ぐらいからですか? www.jp.arm.com/kk/summary/price.html
368 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 10:11:55 ] いやコンパイラがC++のより高度な文法をサポートしてるだけ BREWに関してはデバッグ環境はかわらんよ 値段はシラネ
369 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 13:09:34 ] おれは C++ で開発してるけど、GNUARM しか使ってない。
370 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:41:48 ] GUNDA(ry
371 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 11:33:28 ] >>370 これのことか? ttp://www1.interq.or.jp/t-takeda/rx78/index.html
372 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 21:52:14 ] またえらくなつかしいもんひっぱりだしてきたな
373 名前:デフォルトの名無しさん [2007/04/05(木) 21:58:13 ] SecurityPass・・・
374 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:39:53 ] 保全.NET 2005 Express Edition。
375 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 09:43:26 ] 通信中や処理中にキーを連打すると、 通信や処理終了後に連打した分のキーイベントが、 全て起こってしまうんですが、 これを上手く回避する方法はないでしょうか?
376 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:08:13 ] 無視すればいいんじゃね?
377 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:36:30 ] 二つとか三つとか音楽を同時に再生をスタートさせる方法ってある? IMEDIA_Playを並べて書いてみたらズレまくって困る
378 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:45:32 ] 普通に2つ並べて書いて問題起こったこと無いな。 データがおかしいのかも。
379 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 14:09:01 ] なんと言えばいいのかな。 全部の音は、鳴ることは鳴ってるんだけど。 ただ、並べて再生してみたら数ミリ秒とかそんなぐらいなんだけどスタートがズレてて、 後ろに書いた方がタイミングがズレてるような感じを受けるんだ。
380 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 14:28:16 ] FA:そんな厳密な同時性を携帯端末に求めるな
381 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 15:24:41 ] IFileMgr_GetFreeSpace(IFileMgr * pIFileMgr, uint32 * pdwTotal) の *pdwTotal って何?
382 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 15:56:59 ] >>381 BREWAPIReference.chm
383 名前:381 mailto:sage [2007/04/13(金) 16:43:56 ] >>382 すんません。 「ファイルシステムで現在使用可能な空きバイト数」(戻り値)とはちがう、 「ファイルシステム内の合計空き容量」(*pdwTotal)って何だ?と思って。 k-brew-testでほぼ目一杯にしてて、*pdwTotalがEFS全体に近いような値だったので、 これ何だろと。 他のアプリも含め、アプリが作成したファイルを全部削除した場合の空き容量とか? >>381 最初からそう書いとけ
384 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 17:43:50 ] 気にしなくていいと思う。
385 名前:381 mailto:sage [2007/04/13(金) 18:26:37 ] なるほど、そうしてみる。(・∀・)
386 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:06:49 ] >>383 >「ファイルシステムで現在使用可能な空きバイト数」(戻り値) EFSのうちの空き容量。 >「ファイルシステム内の合計空き容量」(*pdwTotal)って何だ? EFS全体のサイズ。だからTotal。 システムが占有する分がいくらかあるだろうから仕様書の値とは若干違う。 だから「EFS全体に近いような値」(であって大きく外れた値ではない)。
387 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 10:28:43 ] すみませーん。 IDATAFOLDER_SelectUI なんですが、 第4引数の dwMaxFileSize の説明に 『選択するファイルサイズ合計値の上限。(単位はKB)』 とあるので100と指定してみたのですが、 余裕で100KB超のファイルを選択できます。 仕様と思っていいんでしょうか? テストに使用している機種はW42SAで、 端末仕様書を見る限り特に制限とか書いてないようなんですが。
388 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:49:48 ] >【複数選択時の残表示について】 (略) >この機能は移動機依存であり、実装されない移動機もあります。 こういうことじゃない?
389 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 22:00:22 ] KDDI向けのBREW3.1日本語で開発していますが、質問です。 世に出回っているアプリ起動中に、電源ボタンを押すと、 xxxを終了します。よろしいですか? 1中断する 2終了する 3キャンセルする と端末共通ぽいダイアログがでますが、これの呼び出し方法が判りません。 何かの設定をすると自動で出るのか・・・KDDIのライブラリを呼ぶのか・・・色々調べたけどダメでした。 判る方居たらよろしくお願いします。
390 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 22:13:50 ] >>389 サービスガイドを「ダイアログ」で検索。
391 名前:デフォルトの名無しさん [2007/04/17(火) 23:04:23 ] >>389 サービスガイドはひととおり読んだほうがいいんじゃないでしょうか・・・ あと、事前検証手順書とチェックシートは今のうちに一回眺めておくと 後で幸せかもしれません。
392 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 23:04:24 ] >>389 その周りって、2.1と3.1でスペックが微妙に違うよな。2.1だと何も考えなくても よかったんだが
393 名前:389 mailto:sage [2007/04/17(火) 23:44:10 ] レスくれた方ありがとう、読み直してきます。
394 名前:387 mailto:sage [2007/04/18(水) 10:16:14 ] >>388 どうやらそのようで。 今日別の端末が届いたので同じアプリを入れてみたら、 「あと100KB」と表示が出ましたとさ。 その文言はどう見ても「複数選択」の方に かかりそうな気がするんだが・・・ 何だかなぁ(゜д゜)
395 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 00:55:32 ] BREW携帯に送れないの?意味無いような・・・
396 名前:デフォルトの名無しさん [2007/04/22(日) 02:00:22 ] >>395 試験モードになってりゃシリアルケーブルで送れるよ。 sigファイルを定期的に取り直せば勝手アプリだって 自由に動かせるよ。便利だよ。
397 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 02:14:57 ] くそー メンテのせいで仕事がーーー
398 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 02:38:08 ] メンテなんてやめんて
399 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 03:29:23 ] 這(゚Д゚ )
400 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:39:15 ] 検証提出直前3日前だと笑い死ぬと思う。
401 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:03:23 ] メンテで提出日に出せません あーん?聞こえんなぁ 徹夜してでも間に合わせろ なんとか終わらせました あーん?何徹夜残業してんだよ メンテでできなかったからです あーん?そんなもん知ったことか ちゃんと計画立ててないのが悪い 残業代でないからな
402 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:15:17 ] もっともだ・・・
403 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:41:04 ] もともと残業代のない俺は勝ち組
404 名前:デフォルトの名無しさん [2007/04/24(火) 15:08:09 ] 20日に検証中に変わったんだが 一向にこちらのサイトにアクセスがない。 もしかしてsigファイルとれなくて実機での検証がまだとかなのだろうか・・・
405 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 17:34:24 ] 検証始まったんなら、ぼちぼち作業が進むんでない? まだ3営業日しか立っていないんで、何とも言えない希ガス。
406 名前:デフォルトの名無しさん [2007/04/25(水) 01:22:22 ] >>405 18時位からアクセスが来た。しかもこの時間になっても検証作業してる。 がんばれ検証ラインの中の人。
407 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 01:53:37 ] じゃあ、やっぱりsigか? 無効も迷惑こうむってたんだな・・・
408 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 13:17:02 ] なんか、最近は検証も外注とか何とかそういう話が出ているようですね。。。
409 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 07:47:57 ] がんばれ、KDDI検証の人! 連中にはいろんな意味で頭があがらないぜ。
410 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 00:49:42 ] 最近も何も、初めっから検証は外注
411 名前:デフォルトの名無しさん [2007/04/27(金) 01:05:36 ] 検証通ったようでステータスが登録中になったよ。ありがとう中の人。
412 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 02:24:51 ] sig、なおらないねー・・・
413 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 09:56:08 ] gnudeの情報は出ていましたが、WinARMって誰かもう使ってますか? ソースはC++で、静的変数をいっぱい使っていたりするんですけれど。 それから、こちらはRVDS2.xが前提みたいですが、lightblueの modジェネレータって、誰か使って成功しています?
414 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 13:17:34 ] sigとれるようになったー ・・・って有効期限が1年になってるけど、あってるの?これ・・・
415 名前:デフォルトの名無しさん [2007/05/01(火) 01:52:48 ] みんなデスマってるか〜?
416 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 09:15:07 ] ん? 俺は連休中だ
417 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:11:37 ] >>416 いいなぁ、お前、どうせ去年からずっと連休なんだろ?
418 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:35:20 ] さすがにそこまでのヤツはこのスレには来ない予感
419 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 14:34:57 ] 黄金連休は9連休だった。
420 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 15:21:34 ] こ れ か ら 2 ヶ 月 祝 日 な し
421 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 15:45:37 ] 祝日があっても休めなかったりするのに 何言ってんだ?(・ω・)
422 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:00:22 ] 休めるわけじゃないが、遅刻しても平気なだけマシなのだな
423 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:28:33 ] しかし連休明けと同時に書き込みが始まるのは判り易いよな
424 名前:デフォルトの名無しさん mailto:sage [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(); をやるとまったく違う関数が呼ばれてしまう。。。。どうしたらいいんだろ。。。。
425 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 02:07:48 ] 何で仮想継承してるのか分からんけど、普通に多重継承させて ClassG* classG = static_cast<ClassG*>(static_cast<ClassD*>(obj)); obj->hoge(); でいけることない?
426 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 02:57:58 ] 仮想継承消して実験してみたら、↑のは曖昧って怒られた。 むかついたからこんな風にしてみた。 IClassG* classG = (IClassG*)(ClassD*)(ClassC*)(ClassB*)(ClassA*)obj; classG->ClassGFunc(); 今は反省していない。 >>424 Object にキャストしたときにはもう元の型情報が失われてるから、 ClassG* にするために何バイトオフセットをずらせばいいかが分からない。 だから正しい型(ClassG を継承した型)に戻した上で ClassG* にキャストしてやる必要がある。
427 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 04:12:34 ] >>426 それでいけるのも分かるのだが、 しかしそうすると、たとえばIClassGを実装したクラスが 3つあるとすると、それらをIClassG型で扱いたいのに、いちいち元の型を しらべて、それに一度キャストしてからIClassGに戻すということをしないといけない。 JavaではIClassG型として受け取れば元の型が何であろうと IClassG型のメソッドは呼べる。 できればJavaと同じ振る舞いをさせたいんだけどいい方法ないかなぁ・・・・ COMのQueryInterfaceみたいなのを作るしかないのかな・・・・・
428 名前:427 mailto:sage [2007/05/08(火) 04:16:36 ] 追記。 いったんObject型にしちゃうのは、JavaでいうVectorみたいな 可変長配列に入れてるためです。 templateにしてないのはプリミティブ型を入れたくないから。 まぁ元がJavaからの移植なのでできるだけJavaのコーディングを 真似したいということです。
429 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 08:55:57 ] >>428 少々めんどくていいなら、 struct Object { int type; void* obj; }; こんな感じのクラスを可変長配列に格納すればいいんじゃないかと。 受け取った側は type を見て適切な型に頑張って自分でキャストする、と。 >>427 それをするためには RTTI が不可欠になってくるので、 自分でそういった機構を作る必要が出てくるだろうなぁ。 正直俺はやる気がしない。
430 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:29:48 ] ARMのコンパイルしたら #include file "なんたら" wouldn't open がズラーっと並ぶ。 なんたらのところは追加インクルードディレクトリの中にあるヘッダーファイル どのへんをいじってみたらいいのかもわからんボスケテ
431 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:39:47 ] >>430 -Iオプションで追加インクルードディレクトリを指定してあげたらいいんじゃないかな。
432 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 09:56:59 ] >431 助かった。解決!
433 名前:デフォルトの名無しさん [2007/05/10(木) 21:53:07 ] Cメールを受信すると一瞬停止する現象が起きます W32SA端末です
434 名前:デフォルトの名無しさん [2007/05/11(金) 00:10:01 ] >>433 そうですか。
435 名前:433 mailto:sage [2007/05/11(金) 01:29:06 ] Cメール受信時の動作についてはどんな資料見ればよいでしょうか? 支援サイトの資料はあるのですが、「W32」「メール」で検索したのですがダメでした。 アドバイスお願いします
436 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 02:58:29 ] どのドキュメントにも載ってないだろうし、 その件は技術サポートに質問するような内容だね。
437 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 04:17:22 ] 意味がわからなかったけど、 BREWアプリが停止するって意味か。 サポートに聞けとしか(ry
438 名前:433 mailto:sage [2007/05/11(金) 09:10:37 ] 問い合わせてみます。
439 名前:デフォルトの名無しさん [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コンパイラの何らかの機構によるものではないかと思うのですが、 私には、それが何であるのか今のところ分かっていません。 他にも同じ経験をされた方や、詳しい方いらっしゃいましたら是非ご教授くださいませ。
440 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:56:39 ] >439 pHoge を Object* にキャストした場合はどうなる? >class Hoge : public Object 単一継承じゃなくて多重継承してたりとかしない? >この時、pObjectにだけ 他で得られたポインタ値-8 が格納されていました。 +8 じゃなくて、-8?
441 名前:439 [2007/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だったように思います。 明日詳しく調べてきます。
442 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 00:45:51 ] >>424 と同じ悩みだな。 「BREW Java 風 クラス」とかでググるといいかも。
443 名前:デフォルトの名無しさん mailto:sage [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 でオブジェクトのメモリレイアウトが違うんじゃない?
444 名前:439 mailto:sage [2007/05/15(火) 01:45:15 ] すみません、Object*で返ってきたポインタ値は、皆さんの仰るとおり+8でした。 どうやら逆に勘違いしていたようです。 >>443 なるほと、そういうことなのですね。 あれから自分でも色々試し、色々と分かるようになりました。 私も途中で>>424 の問題とぶつかりましたが、私の場合は 基本的にスマートポインタを使うようにし、派生クラスから基底クラスへキャストした際に 派生のポインタと基底のポインタから差分を取り、キャストオフセット値(?)として スマートポインタ内部に保存して、必要なときに取り出せるようにしました。 これで大きな問題が解決でき、やっと作業が進行しそうです。 皆さん、本当にありがとうございました。
445 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 00:30:07 ] 今日のカンファレンスに出てたのって例のykubo氏か? GJと言いたいとこだが、ちょっと喋るの早すぎないかw
446 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:31:55 ] あああ、カンファレンス行き忘れた。 そもそも申し込みしてないんだが。w
447 名前:デフォルトの名無しさん [2007/05/22(火) 13:24:16 ] PCから端末へのアプリの転送速度を上げる良い方法知らないか? 過去ログ見たがケーブルが悪いとか赤外線があるとかあったが、いまいち良い情報が見つからない。 ちなみに今は純正使ってる。 誰かオススメあったらkwsk
448 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 13:29:49 ] 転送量を減らす
449 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 03:51:18 ] なぁ、BREW2.1のアプリってまだ作ってる? どうせユーザー数は少ないんだし切り捨てたいんだけど… KではBREW2.1はとっくに眼中にないわけで 公式に「もうBREW2.1は忘れていいから、BREW3.1アプリに注力してよ」 とか言っちゃってくれると一番強力なんだけどなー
450 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 09:01:23 ] WINの2.1なら容量がOKならまだ対応することもあるね 2.1でみると課金率下がってるから、もう少しで死滅するんじゃないのか、とは思ってるけど
451 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 10:05:36 ] 2.1のアプリってもう3.1で実績無いと作れないんと違うの?(´・ω・`)
452 名前:デフォルトの名無しさん mailto:sage [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とか)の値が返ってきていました。 何が問題なのでしょうか。
453 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 11:48:28 ] APIリファレンス見た? bRangeは使わないの?
454 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 11:49:59 ] NULLチェックしてないから永遠に続いてる
455 名前:デフォルトの名無しさん mailto:sage [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の場合、終端ということになるのでしょうか