BREW(Binary Runtime Environment for Wireless) 7at TECH
BREW(Binary Runtime Environment for Wireless) 7 - 暇つぶし2ch2:1
06/01/17 21:56:10
BREW関連

Qualcomm CDMA Technologies - CDMA2000 3G Solutions ← チップセットの情報(PDFあり)

URLリンク(www.cdmatech.com)

ARM関連

ARM7DTMIの部屋
URLリンク(vsync.org)

ARMメモ
URLリンク(www.bomber.co.jp)

Linux Zaurusでアセンブリプログラミング
URLリンク(www.nk.rim.or.jp)


3:FAQ
06/01/17 21:56:39
SDKダウンロードについて
IE5.5SP2以降推奨、NNでも動くかも知れないけどOperaとかMozillaとかは確実に無理。
JavaScript+ActiveX。
あと、会社名とかをちゃんと登録しないとダウンロードできません。
2Channel Inc. みたいな正式な名前。登録内容は全部英語。

Q. gccでコンパイルしたいのですが
A. こちらを参考にどうぞ.

Q. BREWアプリを自作して自分の携帯に入れたいのですが?
A. 素人は作ることは可能ですが端末に転送することはできません
あきらめるかCPなどのプロになりましょう

Q. DLLにコンパイルしたものを端末に転送したのですが実行できません
A. ARMの形式でコンパイルする必要があります
あきらめるかARMにコンパイルできるようがんばりましょう

Q. BREWて正直うんこなんですが…
A. そうかもしれません
しかし手段・道具によらず目的を達成するのがプロというものです
がんばりましょう

Q. _| ̄|○ ……
A. (つДT)つ旦


4:BREW大将
06/01/17 22:43:40
うむご苦労。

5:デフォルトの名無しさん
06/01/18 10:00:17
>>1

6:デフォルトの名無しさん
06/01/18 10:43:27
>>3
Q. gccでコンパイルしたいのですが
A. こちらを参考にどうぞ.
URLリンク(kintubo.kakiko.com)

7:デフォルトの名無しさん
06/01/19 19:49:24
ARMたんでコンパイル通すときに、
const char* mmMes_Tbl[] = {
"あいうえお",
"かきくけこ",
"さしすせそ",
"たちつてと",
};
っていう風にしてあるところが、
static initialisation of 'mmMes_Tbl' by string literal may cause link failure -ropi
と「warning:C3450W」されてしまったのだけど、何が問題なんでしょうか??


8:デフォルトの名無しさん
06/01/19 22:44:27
"あいうえお"等の文字列アドレスが実行時に解決できないコードになるので
サイズを固定にして、コンパイラが先頭アドレスをそれぞれ計算できるように
const char mmMes_Tbl[][20] =

でやるか

staic const char* mmMes_Tbl[] = {
と書くしかない(こっちはコンパイラが勝手に最適化でもするのかね?)

9:デフォルトの名無しさん
06/01/20 14:03:24
>>8

constでもstaticってだめなんじゃないの?

10:デフォルトの名無しさん
06/01/20 14:31:26
いやconst staticは問題ないよ

11:デフォルトの名無しさん
06/01/20 15:14:01
前スレの改造野郎へ

A5501T と A5502K は BREW2.1 の最弱端末だから
全機種対応を目指すなら持っておくといいと思う。もう不要かもしれんけど。

最近WINじゃない端末で新機種対応する仕事が減ってしまった。
1XはWINで一定の販売実績がないと新機種リリースさせてもらえないらしい。
営業ちゃんと売ってくれよ・・・orz

12:デフォルトの名無しさん
06/01/20 17:11:38
>>11
わかりました。アドバイス有難う御座います。

13:デフォルトの名無しさん
06/01/20 20:39:09
リソースエディタ、いっぱい登録するのタルいんですが、
テキストファイルにリスト書いといて、一気にbarを生成
するようなツール無いですか?


14:デフォルトの名無しさん
06/01/20 20:47:13
>>13
BREW2.1ならキーマクロとか使うといい。

15:デフォルトの名無しさん
06/01/20 20:50:01
>>14
ありがとん

16:デフォルトの名無しさん
06/01/20 21:52:22
>>13,15
リソースエディタの3.0だと中間ファイルがXML化されてるから、自分で構文真似して中間ファイル生成して
コマンドラインからコンパイルすりゃいいんじゃね

17:デフォルトの名無しさん
06/01/22 22:20:05
IDataFolderってSDK3.1に入ってるんだよな?
どうにも見当たらないんだが。

18:デフォルトの名無しさん
06/01/22 23:30:47
ヒント:BREW3.1用 日本拡張API

19:デフォルトの名無しさん
06/01/23 03:08:12
誰かMA-7音源すでにいじってる人いる?

20:デフォルトの名無しさん
06/01/23 20:34:24
>>18
サンクス。すげぇ見落としてた。

21:デフォルトの名無しさん
06/01/23 21:08:53
BREWたんはヤンデレだと思うんだ。

22:デフォルトの名無しさん
06/01/23 22:48:25
やり場のないデスレース?

23:よね@飯田橋 ◆LOUDNESSQA
06/01/24 00:52:57
タイマってたくさんかけると何か問題ありますか?
処理能力が落ちるくらい???


24:デフォルトの名無しさん
06/01/24 01:00:15
大麻は捕まるんじゃね?

25:デフォルトの名無しさん
06/01/24 10:51:18
タイマーを二つかけててW21CAで頻繁に落ちてたのが、
タイマーを一つにしたら安定したことがある。

26:デフォルトの名無しさん
06/01/24 12:13:07
端末の再生可能メディアフォーマットを取得する方法ってありますか?
ISHELL_GetDeviceInfoExでとれないぽいから無理なんですかね・・

27:デフォルトの名無しさん
06/01/24 12:15:45
>>26
AEEMediaUtilは……違うか。

28:デフォルトの名無しさん
06/01/24 17:58:38
VS2005への対応は当分先ですか?

29:デフォルトの名無しさん
06/01/24 18:29:17
誰かKDDI Mobile Solution Partnerに参加してる人(会社)いない?
BREWについての情報開示ってないのかな、これ?あるとして、どの程度の情報が開示さ
れるんだろう。スペックシートや既知バグ、最近ezfactoryからリンクの消えた日本パッケージ
のDLなんかが出来たりするんだろうか…

30:デフォルトの名無しさん
06/01/24 19:49:46
すいません、質問させてください。
端末のマナーモードを解除する方法はありますでしょうか?
3.1のEZアプリサービスガイドの34ページに
マナーモードとは、「ユーザ操作によ移動機の着信音等が一時的に鳴らない
設定(ミュート設定)」を意味しているとあり、ミュートコントロールにより
ミュートされた状態がデフォルトとありますが、
マナーモード状態のときにIMEDIA_SetMediaParmを使って
ミュート設定を解除しても音が鳴りません。。
端末はW32Hになります。
すみませんがお分かりになる方がいらっしゃいましたら教えてください。

31:デフォルトの名無しさん
06/01/24 20:11:23
何故解除できると思うのか不思議だ
その状態で音鳴ったら欠陥アプリだろうに

32:30
06/01/24 20:20:18
>>31さん
そうなんですが・・
ミュージックプレイヤーではマナーモードの場合にもボリュームを
上げると音が鳴るのでそれにあわせようとしていたんです。
マナーモード時に音を鳴らすのは推奨しないと書かれていたので
そのように伝えてみます。すみませんでした。

33:デフォルトの名無しさん
06/01/24 20:36:50
端末プリインストールのアプリはBREWの検証基準甘いか特殊なのかも。

某端末についてたアプリをK-BREWでメモリいっぱいにして起動したら
メッセージも出さずに落ちたしw

34:デフォルトの名無しさん
06/01/24 20:47:03
先日個人的に落としたゲームはマナーモードなのに普通に音鳴りますよ。
レジュームとか関係なく起動一発目から盛大に音が鳴ってくれます。
端末はW32Hですが、前スレで話題に出てたIMEDIA_SetAudioDevice絡みかな?


35:30
06/01/24 21:31:51
>>33さん、34さん、どうもありがとうございます。
せっかくなのでIMEDIA_SetAudioDeviceを調べてみます。
でもマナーモード利かないゲームってすごいすね
電車の中でやりづらいじゃないすか・・

36:デフォルトの名無しさん
06/01/24 22:13:53
>>35
ゲームの方にも音のONOFFつけるよ


37:デフォルトの名無しさん
06/01/24 23:05:42
いやーそうじゃなくて、「マナーモードだから音鳴らない」と思ってゲーム起動したら
いきなり音が出たら困るって話でしょ

ワンセグアプリで確認したら

マナーモード時→起動時ミュート。アプリの音量調節で声を出すことが出来る
通常時→起動時、前回のボリューム。

みたいだな。
そんな仕様でいいのかな。

38:デフォルトの名無しさん
06/01/25 10:10:26
ワンセグはユーザーの種類がゲームとかとは違いそうだからなぁ
携帯の電源が入りません→充電してありますか?
からやらんといけない連中だろうから、ミュートでも音鳴るように
しておいた方が安全のような気はする。

ユーザからのバグ報告とか見ると
結構キてるのいるぜーwww

39:デフォルトの名無しさん
06/01/25 14:48:26
済みませんがどなたか分かる方、教えてください。

メモリのバッファの中のPNG,JPEGフォーマットを展開するには
どうしたらいいでしょうか?

ファイルから、とリソースからの読み込みはサンプルを見つけたので出来ました。

BREW2.1です。よろしくお願い致します。

40:デフォルトの名無しさん
06/01/25 15:13:21
>>39
つ IMemAStream


41:デフォルトの名無しさん
06/01/25 16:28:54
>>40
どうもありがとうです。見てみます


42:デフォルトの名無しさん
06/01/25 16:40:02 BE:399524966-
公式サイトからBREW SDKダウンロードしようとしても
Acces Errorとかなってダウンロードできないよorz

43:デフォルトの名無しさん
06/01/25 16:41:25 BE:155370672-
accessだた

44:デフォルトの名無しさん
06/01/25 16:53:15 BE:310742047-
ごめんなさい>>3読んだらわかりました。

45:39
06/01/25 17:02:55
すみませんがまだ詰まっています。 IMemAStreamに割り当てた
メモリ領域をLoadImage等の実際の画像展開部分に認識させる
方法が分かりません。

ISHELL_LoadResObjectに何らかの方法で引き渡すと思うのですが、
どこか勘違いしていますでしょうか?

ご教示いただければ幸いです。

46:デフォルトの名無しさん
06/01/25 18:55:37
IImageふんにゃか

47:デフォルトの名無しさん
06/01/25 21:07:07
ISHELL_GetDeviceInfoExのID:KDDI_RESTRICT_EZAPP_NETについてなのですが、
EUNSUPPORTEDが戻り値でかえってくるので状態が取れません。
他のM機能による制限状態は取れるのですが、何か問題があるのでしょうか。
端末の説明書を見ると、サポートされている機能のようなので
すみませんがお分かりになる方がいらっしゃいましたらご教示ください。
端末はW32Hになります。

48:39
06/01/25 21:52:19
>>46
とりあえず出来ました。ありがとうございます。

ところで、IMEMASTREAMを使って***_SetStream系を呼んだあと、
戻ってきた時に読み込みは完了してるものでしょうか?

(順序としては_SetStreamのあとにすぐIMEMASTREAM_Releaseを
呼んでいます)

ASTREAMが非同期ストリームという名前だったり、完了コールバックが
設定できたりするので気になってます。今回の用途的には完了復帰
している方がありがたいのですが、プログラミングガイドを読んでも
いまいちはっきりしませんでした。

よろしくお願い致します。

49:デフォルトの名無しさん
06/01/25 23:11:59
わかんねのなら、安全側に倒してコールバック待てば良いのでは?
JPEGはすぐには展開は終わらないだろうし、PNGもサイズに
よっては一回の読み込みで展開が完了しないんじゃないかな?
コールバックを無視したことがないので良く知らないけど。

50:デフォルトの名無しさん
06/01/25 23:39:52
>>49
コールバックの待ち方はどうやってますか?

volatile int flag=0; //コールバックの中で1に設定
***_SetStream()
while(flag == 0);

ってやったら固まりました。待機用のイベントオブジェクトや
お勧めの方法ありましたらお願いします。

51:デフォルトの名無しさん
06/01/26 00:31:09
returnして待つ。システムに返さなきゃ非同期の展開もしないし。

52:デフォルトの名無しさん
06/01/26 07:46:43
無限ループを使ったコールバック、イベント待ちは、NG。
アプリ側が処理している間はシステム側は止まっている。
なので、returnしてシステムに自由を与えないとダメ。
もちろん、コールバック待ちの間にもキーイベントとか、
サスペンドイベントとかが割り込んでくるので注意が必要。

53:39
06/01/26 08:40:16
ありがとうございます。

>returnして
はああああ…orz

LoadImageみたいに完了復帰で読み込む方法はありませんでしょうか。
あっちでやってるならこっちで出来ないことでもないと思うのですが、
うむむむ。

54:デフォルトの名無しさん
06/01/26 10:22:26
>>53
自前で展開

55:39
06/01/26 10:44:29
>>54
JPEGやPNGの展開ルーチンを自前で持つことは出来ますが、
容量制限から現実的ですか?

実際やっているのでしょうか。こちらはもう容量ぎりぎりなので、
とてもじゃないが…というところです。

56:デフォルトの名無しさん
06/01/26 10:57:42
つまり君はこう言いたいわけだ。

完了復帰でJpeg読めて容量食わない方法キボン(゚д゚)

57:デフォルトの名無しさん
06/01/26 10:59:09
>>39
IMemAstreamとpngのセットなら、即展開されたと思ふ。
まぁ俺も端末依存怖くてコールバック待ってるけど。

>ASTREAMが非同期ストリーム
こっちはファイルや通信用のストリームとして使用できるから非同期。


58:デフォルトの名無しさん
06/01/26 11:22:10
>>55
>容量制限から現実的ですか?
Java で PNG の展開やったけど、5KB ぐらいだった。
BREW でやっても 10KB ぐらいじゃね?
さすがに jpeg はきついと思うけどな。

59:デフォルトの名無しさん
06/01/27 04:06:17
先輩方!
初検証提出のちぇっくに右往左往しております。
いくつか質問させてください。

・通信待ち時にクリアキーでキャンセルできることみたいな項目ありますが、エミュレータでAVK_CLRのキーイベントがおこったすぐあとにSTOPがきてしまいます。
通信をキャンセルどころかアプリが終了してしまうんですけどいいんですか?

・RESUME/SUSPEND時に具体的に何したらいいかわかりません。
SUSPENDイベントがきたら、ISHELL_LoadResImageとかで確保した画像とかサウンドとか解放しないとダメですか?
解放しちゃうと、RESUM時に全部再読込しないと思うのですが、他のサイトのアプリみてると読みこんでるようには見えないです。

・アプリ起動時のヒープが十分に・・・って項目ありますが、起動時には十分で、リソースを初期化するときに不十分になったら終了しちゃっていいですか?
それとも、すべてのリソースが確保できるヒープがあることを確認しないと起動しちゃダメなんですかね?


60:デフォルトの名無しさん
06/01/27 04:14:59
1つめについて
キーに対して処理を端末に任せるかどうかの判断はEVT_KEYイベントでしか返せない
EVT_KEY_PRESSとEVT_KEY_RELEASEでreturn TRUEを返しても、
端末はクリアキーの処理を自分で処理してしまうんだ

だから
case EVT_KEY:
if( wParam == AVK_CLR ) return TRUE;

とかしておけ

61:デフォルトの名無しさん
06/01/27 04:35:55
>>60
すばやいレスありがとうございます。先輩も会社にお泊まりですか?

そのとおりEVT_KEYにtrueを返したらうっかり終了しなくなりました。
ちなみに、チェック項目で
・EVT_KEYで終了確定動作
ユーザからのキー入力においてEVT_KEYイベントで確定動作を行っているか確認して下さい。
アプリ終了動作をEVT_KEY_PRESSにて終了確定とした場合、その後EVT_KEYがアプリケーションマネージャに送られてしまいアプリが自動起動してしまう等の不都合が発生します。
↑これは、EVT_KEY_PRESSをトリガにして遷移処理するなってことでしょうか?

62:デフォルトの名無しさん
06/01/27 08:41:00
うん

63:デフォルトの名無しさん
06/01/27 10:11:39
アプリのヒープは一番データを読み込んでる所+50Kくらい
起動時にチェックしとけばいいかも。
それでも足りなければさらに多い容量でチェックする感じ。

最悪、自分のアプリ以外は何も動いてない状況じゃないと
動かない場合のみ起動ですらいいのかもしれん(゚∀゚)

それでもメモリ確保できない場合はエラー表示して終了。

64:デフォルトの名無しさん
06/01/27 12:02:51
すみません。。
ITextCtlで入力モードを指定するITEXTCTL_SetInputModeにおいて
半角英数字のみにしたい場合AEETextInputModeはどのように指定すれば
いいのでしょうか。。AEE_TM_LETTERSの指定から
半角カナや特殊文字を除きたいのですが、やり方がわかりません。
すみませんが教えてください。

65:デフォルトの名無しさん
06/01/27 19:00:54
つ[プログラミングガイド]
つ[サービスガイド]

66:デフォルトの名無しさん
06/01/28 03:38:43
>>55
PNGの自前展開についてはBREWはIUnzipAStreamがあるからピクセルデータの展開は楽。
あとはチャンクの解釈と透過色の設定とかちょこっとやってやればおk。PNGOUTとか通して
必須チャンクのみなら順序も決まってた気がするしさらに楽。数KBも喰わないんじゃないかな。
IUnzipAStreamがバッファに40KBくらいメモリもってくけど、IImageにPNG読み込むときも同じ
だし。

JPEGはシラネ。一部の機種で扱いが面倒だったりするし出来れば使いたくないフォーマット。

67:デフォルトの名無しさん
06/01/28 05:21:51
>>66
IUnzipAStreamも非同期展開のような気がするんだが。

>>53
LoadImageでも、JPEGはコールバックを待つ必要がある。
展開に時間が掛かってヤバス、なので非同期にしている
んだと理解していたんだけれど、認識誤っているのかな?
確か、何msかに一度はシステムに戻さんとダメだよね。


68:デフォルトの名無しさん
06/01/28 10:47:13
>>67
IUnzipAStream は while でグルグル回して何度も取得すれば展開できるよ。
でかいファイルだとやばいけど、100KB ぐらいなら問題ない。

というか PNG ってイメージ部は IUnzipAStream で解凍できたのか……。
俺はいつも手動で展開してたよorz

69:デフォルトの名無しさん
06/01/28 12:39:37
すまそ、そうでしたか。
IUnzipAStream を最後に使ったのは、かれこれ二年
くらい前なので実装を忘れてしまっているです。

70:デフォルトの名無しさん
06/01/29 00:11:52
>>68
>IUnzipAStream は while でグルグル回して何度も取得すれば展開できるよ。

AStream系は同様にして非同期から逃れられないものでしょうか?


71:デフォルトの名無しさん
06/01/29 00:54:56
IAStream である以上、リファレンスに同期で動作するって書かれてるか、
フォーラムとかで同期であることを保証してもらわない限りは、非同期である可能性はある。
同期であるのを絶対に保証したいのなら、自前で実装した方がいいよ。

72:デフォルトの名無しさん
06/01/29 10:37:47
>>67
>LoadImageでも、JPEGはコールバックを待つ必要がある。
LoadImageってどこでコールバック登録するの?

73:デフォルトの名無しさん
06/01/29 20:44:46
ガイド読めって。
わざわざピックアップして解説してるうえ、サンプルコードまで出てんのに。

74:デフォルトの名無しさん
06/01/30 11:02:56
国内端末は今のところ結構仕様が平均化しているし、APIリファレンスに書いてない
ことでも大体同じような挙動を示す(PNGはコールバック待たなくても大丈夫、ファ
イル読み込みもコールバック待たなくても大丈夫)けど、海外端末扱ってみると
そりゃもうばらばらだよ。
仕様に書いてない変な制限があることもしばしばあるし。
国内の仕事しかしない人も、今後はKDDIが海外端末導入することも考えて、せめて
リファレンスには忠実に作っておいたほうが良いと思うぞ。

75:デフォルトの名無しさん
06/01/30 14:30:05
>>73
サンプルコード読んでみたけど流れがますます分からなくなった。
コールバックを待つためにいったんリターンするような流れには
せず、いきなりインスタンスをReleaseしているっぽい。

LoadResImageにいたってはコールバックの登録がLoadResImageの後だし、
表示のためのコールバックとなっていて読み込み完了には言及されていない。

もともとあっちこっちに間違いがあるようなサンプルだから、そのまま真似する
のはまずいかなあ。

76:デフォルトの名無しさん
06/01/30 15:38:48
>>75
話の流れからして、Javaの移植だよな?
JPEGのデコードに話が偏ってるようだが、
通信だってバッファある程度取得したらシステムにreturnする。
スレッド処理で楽してた部分は全部BREWじゃ書き直しだろ。

みんな同じ条件で使ってるんだ。
文句ばっか言ってねーで使いこなせyp


77:デフォルトの名無しさん
06/01/30 19:16:59
LoadResImageでコールバック待たないといけないってどこかに書いてある?
ガイド探しても見つからん。

78:デフォルトの名無しさん
06/01/30 19:22:15
>>77
APIリファレンスのコメント覧。

79:デフォルトの名無しさん
06/01/30 20:52:43
IDataFolderでファイル選択しようとしてるんだが、
選択ファイル数1でファイルを選択しようとしても選択マークが付かないことがあるんだが、
何か心当たりある人いる?
セレクト連打してるとたまに選択マーク付いたりするけど、挙動が結構謎で困ってる。
ちなみに端末はW32SA。

80:79
06/01/30 20:54:11
追記。
最大ファイルサイズは0で上限なしにしてる。

81:デフォルトの名無しさん
06/01/30 23:44:26
どっかで重い処理やってるせいでキーが取れなくなってるだけじゃね?
タイマーとかコールバックとか

82:73
06/01/30 23:47:45
>>75
>LoadResImageにいたってはコールバックの登録がLoadResImageの後だし、
>表示のためのコールバックとなっていて読み込み完了には言及されていない

コールバックの意味分かってるかい?
IIMAGE_Notify()で登録する関数は、読み込みが完了したら呼ばれる関数だ。
だからこの関数が呼ばれるということは読み込みが完了したということであり、
関数の内容が表示処理になってるのも当たり前。

コールバック関数の登録は、読み込みを指示した直後にする。
だからサンプル通りの順番で合ってる。

プログラミングガイドのP200あたりに出てるJPEG読み込みのサンプル見てるだろ?
念のため解説してやるよ。

1.ファイルから読み込む例なのでIFileMgrのインスタンスを作る。
2.jpeg読み込みのためにIImageのインスタンスを作る。
 インスタンス生成に失敗したらIFileMgrを解放してリターン。
3.いよいよjpegファイルを読み込む。
 読み込みに失敗したらIImageとIFileMgrを解放してリターン。
 (↑このIIMAGE_Release()を勘違いしたんじゃないか?)
4.IIMAGE_Notify()でコールバック関数を登録。
 ここで登録した関数はファイルの読み込み完了時点で呼ばれる。

ここでreturnとはかかれてないが「------(線)」で区切ってあるだろ?
ここから別の記述場所だよってこと。
他に何か処理を続けるにしても、いずれreturnしますよ、ということ。

5.一方、コールバック関数は… 読み込みが完了したことによって
 ここが実行されているので、あとは表示するだけ、と。

説明が下手かもしれないけど、大体わかるだろ?

83:デフォルトの名無しさん
06/01/31 08:30:09
結論:
サンプルが解りづらい
対策:
サンプルの行間を読む

84:デフォルトの名無しさん
06/01/31 10:50:43
行間を何ピクセルにしたら読めますか。

85:デフォルトの名無しさん
06/01/31 11:09:15
>>84
お前さんの解像度じゃ1ピクセルでも読めない


86:79
06/01/31 18:21:59
>>81
特に何も行ってないんだが……
というか、キー取れなかったらカーソルの移動もできなくなるだろうしなぁ。

87:デフォルトの名無しさん
06/01/31 21:30:20
おかげでNomadという素晴らしいメーカーの存在をしった。
ありがとう

88:デフォルト名無しさん
06/02/02 12:16:55
今BREWを勉強してるんですけど、
ボタンを押して次の画面に行く
簡単なサンプルとか無いですかね?
カレンダーとか解りにくくて...

89:デフォルトの名無しさん
06/02/02 12:49:33
>>88
1.HelloWorldのサンプルコードを用意する。
2.キーが押されたら違う文字列を描画するよう改造する。

まずこれやって。

90:デフォルトの名無しさん
06/02/02 13:48:37
既にBREWがどうとか以前の問題のような気がする。

91:& ◆D3ra0B2LiQ
06/02/02 15:01:57
>>89
作成しました。次は何をすればよいのでしょう??

92:デフォルトの名無しさん
06/02/02 17:10:26
>>91
ITMediaの入門ページ見れば?

93:89
06/02/02 18:58:47
>>91
>>89ができたんなら>>88が解決したってことじゃん。
「次は何をすればよいのでしょう」と言われても、好きなようにしなよ、としか…

94:デフォルトの名無しさん
06/02/02 23:23:27
次は音でも鳴らせば

95:BREW珍兵
06/02/02 23:55:01
おっとっとでも作るのか

96:デフォルトの名無しさん
06/02/03 18:24:44
>>93
いやね、「まずこれやって」と言われて続きがあるのかなと思いまして...
でも、できたんでよかったです。


97:デフォルトの名無しさん
06/02/04 17:01:11
マニュアル世代論

98:デフォルトの名無しさん
06/02/04 19:02:30
そういうのがひねくれると2chで暴れるんだよな

99:デフォルトの名無しさん
06/02/06 10:34:42
BREW3.1端末とAPPLOADERを使用できません。なぜか? (w33SA、w41s)

100:デフォルトの名無しさん
06/02/06 10:43:44
坊や・・・ApploaderにはBREW3.1に対応していない古いやつもあるって噂さ

101:デフォルトの名無しさん
06/02/06 10:52:27
APPLOADERのバージョン3.0.0です
QCOMOEMM。DLlは3.0.0.12.


102:デフォルトの名無しさん
06/02/06 10:53:56
どのバージョンがBREW3.1に必要ですか?

103:デフォルトの名無しさん
06/02/06 13:37:32
接続時に正しいポートとバージョン選んでるか?

104:デフォルトの名無しさん
06/02/06 14:24:18
>>103 はい
COM2は"au W33SA Serial Port"と
BREWバージョンは”3.x”

105:デフォルトの名無しさん
06/02/06 15:11:37
デバグ用端末設定してないっつーオチはないよな?

106:デフォルトの名無しさん
06/02/06 15:32:15
>>99-105
そろそろ気をつけた方がいいですよ

107:デフォルトの名無しさん
06/02/06 15:41:14
守秘義務か。
言いたいことも言えないこんな世の中じゃ

108:デフォルトの名無しさん
06/02/06 22:33:45
いまいちブラウザ起動の処理がうまくいきません。こんな関数作ってみましたがどっか間違ってます?(or認識違ってます?)
Brew2.1

void webTo( AEEAPPLI* sys, char *url )
{
char buf[1024];
MEMSET( buf,0,sizeof(buf));
if( ( sys->webInfo = (ShimBrowserInfo*)MALLOC(sizeof(ShimBrowserInfo))) != null ) {
sys->webInfo->cbSize = sizeof( ShimBrowserInfo );
sys->webInfo->clsid = AEECLSID_XXXX;
SPRINTF( sys->webInfo->url, "%s", url );
SPRINTF( buf, "ezurlto:0x%08x",sys->webInfo );
ISHELL_BrowseURL( sys->shell, (const char *)buf );
}
else {
sys->memory_over = true;
}
}

109:108
06/02/06 22:54:01
ちなみに

webTo(sys,"URLリンク(www.yhaoo.co.jp)");
みたいにして呼び出してます。

ステップ実行してみたところ、とくに異常もなく実行できるんですがなんにも起動しません。エミュレータ(Brew2.1)ではブラウザのエミュレートできないの?
ISHELL_BrowseURLを呼び出す時点で、bufには"ezurlto:0x[sys->webInfoのアドレス]"が入っています。

110:デフォルトの名無しさん
06/02/06 23:08:37
関数抜けたらバッファが解放されるからじゃねーの?
あと、ret_evt にイベントをセットしてないのも怪しい。

111:デフォルトの名無しさん
06/02/06 23:10:13
エミュだとブラウザはでないけどなんか画面が切り替わったような気がする

112:デフォルトの名無しさん
06/02/06 23:20:59
>>110

修正して、bufは保持するようにしてみた。ret_evt=EVT_USERセットしてみましたがやっぱり起動せず。
原因わかんないです。。。。

認識間違ってたら指摘お願いします。
①ISHELL_BrowseURLを呼び出したら、AEEからSUSPENDイベントが呼ばれて、自分はサスペンド
②ブラウザを終了させると、呼び出しもとのCLSIDをレジュームする。
③復活。

ホントはドコモみたいにいってらっしゃいで帰ってこなくていいんだけど、無理みたいなんで。


113:デフォルトの名無しさん
06/02/06 23:24:27
>>108
エミュは無反応だよ。
サスペンドが飛んできたかどうかは忘れたけど、
兎も角実機で検証汁


114:108
06/02/06 23:30:26
>>113

>>エミュは無反応だよ。

それ本当なんすか・・orz
うち開発会社だから実機検証めんどいのに・・・

115:デフォルトの名無しさん
06/02/06 23:59:08
エミュが参照するフォルダにアプリと一緒にブラウザのダミーのやつ
入れておけば2.1は切り替わらなかったっけ。
3.1はどうもうまくいったためしないんだけど。

116:名無しBREWたん
06/02/07 11:48:50
>>104
au Win ケーブルは使えないよん。
おとなしく my Sync ケーブルを手に入れるか
互換性のあるケーブルを探すしかない。

117:名無しBREWたん
06/02/07 11:51:13
って、レスしに来たんじゃあなかった罠。

DBGPRINTFをうまく消すやり方だけど、
過去ログだといろんな人がいろいろ言っていたけど、

以下のコードを挟んでみたらとりあえず Logger にはでなくなった。
でも、評価式は残るから、評価式に意味がないときに
コンパイラの最適化で消えているかどうかを調べるにはどうすればよいのだろうか。

#undef DBGPRINTF
#define DBGPRINTF


118:デフォルトの名無しさん
06/02/07 12:02:40
>>117
アセンブラ吐き出して確認すればええんじゃない?

119:デフォルトの名無しさん
06/02/07 13:29:51
DBGPRINTFだってマクロなんだから
自分で同等のマクロ作ればいいと思う。

120:デフォルトの名無しさん
06/02/07 14:22:48
空のインライン関数にしたら?

121:デフォルトの名無しさん
06/02/07 14:59:45
if( cond ){ DBGPRINTF( ... ); }

って書いたときに、最適化によって if 文自体が消えるかどうかって話でしょ?
同等のマクロを作るとか、空きのインラインにするってのは違うと思うんだが。

122:デフォルトの名無しさん
06/02/07 15:08:43
え、みんなワーニング全部消してるの?
親クラスの仮想関数で引数使ってないからって怒られて以来
全部放置してるよ('д')


123:デフォルトの名無しさん
06/02/07 16:05:56
>>121 の場合、DBGPRINTF が消えると、cond の処理(if 文の処理)自体が
命令数的にも処理時間的にも無駄だから、それを ARM コンパイラが
無意味な cond の命令から消してるかどうかってことだろ?

Warning は何の関係もない気がする。

124:デフォルトの名無しさん
06/02/07 17:46:44
>>121
俺はこうかと思ってた。

デバッグ時
DBGPRINTF("line:%d", __LINE__);

製品(DBGPRINTFをundefして空マクロに)
("line:%d", __LINE__);

するとこんなWarningが。
"c:\BREW_SDK\311463~1.2_J\sdk\examples\HELLOW~1\HELLOW~1.c", line 103: Warning: C2917W: no side effect in void context: '"line:%d"'
"c:\BREW_SDK\311463~1.2_J\sdk\examples\HELLOW~1\HELLOW~1.c", line 103: Warning: C2917W: no side effect in void context: '<integer constant>'

ここらがバイナリでちゃんと削られてるのか? ってことかと。

125:デフォルトの名無しさん
06/02/07 18:13:47
>評価式

126:デフォルトの名無しさん
06/02/07 18:41:23
最初っから#ifdef _DEBUGでくくってるので問題にならんのだが、
みんなデバッグプリント裸で書いてるの?

127:デフォルトの名無しさん
06/02/07 18:52:33
いや、ちゃんと服を着て(ry

128:デフォルトの名無しさん
06/02/07 20:35:27
>>126
俺はデバッグ出力用クラスを作ってるよ。
リリース時は全部中身を空にしてる。

129:デフォルトの名無しさん
06/02/07 21:58:48
>>126
くつ下ははいてる

130:デフォルトの名無しさん
06/02/07 23:23:58
>>116 マジで使えない?
usbケーブルwinでw21saを接続できます。

131:デフォルトの名無しさん
06/02/08 02:10:06
消えない背景の上でお絵かきするみたいな機能を作りたいんだけど
複数の画面バッファをレイヤーみたいに重ね合わせるのは可能ですか?

132:デフォルトの名無しさん
06/02/08 02:26:39
>>131
IBITMAP_CreateCompatibleBitmap() と IDISPLAY_CreateDIBitmap() を知らんのか?

それとも重ね合わせる方法がわからないって言ってんのか?
アルファブレンドとか加色合成でレイヤーを重ね合わせるのなら、
DDB から DIB を取得して自前で転送が基本だろ。

133:デフォルトの名無しさん
06/02/08 18:44:13
Brew2.1端末で、終話キーを押してそこから終了ってするとなぜか端末がリセットしてしまいます。
端末がリセットするってことはnullにアクセスしてるからだと思うんですけど、エミュではちゃんと終了できるので解放やり残しではないみたいです。

そこでききたいんですけど、EVT_APP_STOP時にタイマーキャンセルして、falseを返してるんですけど、これってダメですかね?
どっかの仕様書でtrueを返すとダメって書いてあったんでfalseにしているんですけど。

リセットで思い当たるふしがなくて、どうやって修正したらいいもんか悩んでます。。。お助けを・・・orz

134:デフォルトの名無しさん
06/02/08 19:50:05
STOPはTRUEだめだっけ?

135:デフォルトの名無しさん
06/02/08 20:16:19
2.1環境と3.1環境をインスコしたらVCがコンパイル通らなくなりました。
環境変数のBREWDIRが書き換えられるって認識あるんだけど、具体的にどうやったら切り替えできますか?
modはmakefileをいろいろ書き換えてなんとかなったんだけど、肝心のVCでコンパイルできん。

136:デフォルトの名無しさん
06/02/08 20:19:10
>>134
てか true じゃないともっかいアプリが起動した覚えがある。
ついでにいろんなサンプルを見てみたけど、false を返してるものは無かった。

137:133
06/02/08 20:31:32
>>134
>>136

ホントだ、どこ探してもそんな記述はない。なんでこんな処理してるんだろう。謎だ。
ぜったいにfalse返してねーみたいなイベントあったっけ?

138:デフォルトの名無しさん
06/02/08 20:47:22
>>133
事前検証チェックシートにいくつか記載がある。
STOPは規制無かったと思うがtrueを返すべきかと。


139:133
06/02/08 21:33:32
>>138

W21CAで確認したんだけど、「終了」を選んでアプリ一覧に戻らずに待ち受け状態になったけどこれっていいのかな。
とりあえずtrueを返してリセットはしなくなりました。みなさんありがとう!


140:デフォルトの名無しさん
06/02/08 21:51:34
DBGPRINTFについて、関数型マクロの可変長引数が使えれば

#ifdef _DEBUG
#define TRACE(...) DBGPRINTF(__VA_ARGS__)
#else
#define TRACE(...) /* nop */
#endif

とスマートにできる。VC2005ExpressとARMコンパイラなら使える。VC6は無理ぽ。VC2003は知らん。
結局どのコンパイラでも使えるのは

#ifdef _DEBUG
#define TRACE DBGPRINTF
#else
#define TRACE if(0)DBGPRINTF
#endif

しかないんだろうか。
ちなみにARMコンパイラで

if (0)
{
// 処理
}

というコードをコンパイルすると、ちゃんと最適化されてif(0)も含めてコードが無くなる。
なのでパフォーマンス的には後者のマクロでも問題なし。

141:140
06/02/08 22:04:02
ついでに>>117についても調べてみた。

#undef DBGPRINTF
#define DBGPRINTF

DBGPRINTF("ぬるぽ %s", "がっ");

これで命令も、2つの文字列も最適化で消える。パフォーマンス上の問題は無し。
ただしWARNINGが出るので鬱陶しい。WARNINGが増えると、重要なWARNINGを見逃す確率が
高くなるのでオススメしない。

142:デフォルトの名無しさん
06/02/08 22:04:55
最初はDBGPRINTF裸で書いてたから、
とりあえず無理やりこんな感じで解除してる。
今のところはそんなに問題ない感じだが、実際はどうだろう。

#undef DBGPRINTF
#define DBGPRINTF if(0)DBGPRINTF

143:142
06/02/08 22:08:08
if(0)についても書こうかと思ったが、もう140が書いてたね。
書き込み前にリロードしないとこういうこともあるか。

144:140
06/02/08 22:15:10
さらに色々調べてみた。

if (cond) DBGPRINTF("ぬるぽ %s", "がっ");

これで、DBGPRINTFが有効な場合、条件分岐も含めてコードが生成される(当たり前)。

#undef DBGPRINTF
#define DBGPRINTF

でDBGPRINTFを無効化している場合、条件分岐も含めてコードは「削除される」。
要するにif文の中身が空な場合はifブロックごと削除されるらしい。

ただし、上記の動作はcondの値が予測できない場合に限る。

boolean cond = FALSE;
if (cond){
DBGPRINTF("ぬるぽ");
}

この場合、condが常にFALSEであることがコードから判別できるため、DBGPRINTFの定義に
よらずifブロックごと削除される模様。
さらに

int v = 0;
if (TRUE){
v = 10;
}

といったコードですら、vが以降参照されていない場合ifブロックごと削除されている模様。

145:デフォルトの名無しさん
06/02/08 22:47:19
ARM コンパイラって結構賢いのね。
>>140 サンクス

146:117
06/02/09 09:36:03
>>140
勉強になりますた。
自分も逆汗してコード最適化の様子ぐらい見れるようにならんとだめだね。

147:デフォルトの名無しさん
06/02/09 10:06:36
bcc32でbrewコンパイルできるらしいけど、
C++Builderでコンパイルする方法はあるんでつか?

148:デフォルトの名無しさん
06/02/09 11:18:43
>>146
>逆汗してコード最適化の様子ぐらい見れるように
やろうと思えば出来るが出来ればやりたくない

149:140
06/02/09 17:30:16
書き忘れてましたが上記の検証はデフォルトで生成されるMakefileに
-asm -fs
を加えて検証しますた。最適化オプションは
-Ospace -O2
となっているはずです。

あとお決まりですが、内容は無保証で。元ソースコードによって結果は違ってくるでしょうし。
何より今回は変更箇所を追いやすいようかなり単純なコードでしか検証していないので、
商用レベル(規模)のコードでは実は最適化しきれない部分が出てくるかもしれません。

150:名無しBREWたん
06/02/09 20:06:54
あ~、コンパイラにニーモニックコード吐かせれば見やすいね。

さすがに実際のアプリだとコード量が多すぎて検証しきれない時もあるが
>>140の検証で無駄なコードが簡単に削除できることが確認できたのは大きい。

さらに #define TRACE if(0) DBGPRINTF と組み合わせればかなり有用っぽい。

151:デフォルトの名無しさん
06/02/10 00:09:35
きわどい内容承知でちょっとお助け・・。

KDDIのプレミアム課金のエクステンションの利用の仕方がわからない・・。ドキュメントも意味わからんし、質問はCPじゃないのでできない。
とりあえず間違ってるとこあったら教えてください。
○課金モジュールインスコ
・課金モジュールダウソ/解答する。
・Brewのバージョン(ウチは2.1)のフォルダの「開発用スタブ」開く。
・BrewフォルダのExamplesに課金モジュールフォルダコピー(中身はmodとdll)
・Brewフォルダのincに課金モジュール.hをコピー。
・課金モジュール.mifをBrewフォルダのExamplesにコピー。
・課金モジュール用のテキストを自分のアプリフォルダにコピー。

さてこれからが問題。
説明テキストに”【注意】 開発アプリケーションは「BREW SDK フォルダ内の\Examples」に配置して下さい。”とあるんだけど、自分のアプリを\Examples」に入れろって意味?

とりあえずインスコして、ISHELL_CreateInstanceしたところ3=ECLASSNOTSUPPORTが返る(指定したクラスがサポートされていない場合)
AEEがエクステンションを見つけられてないと思うんだけど、上記のインスコ以外でじゃぁどうすればいいのかがわからない。
ちなみに自分のアプリのmifには、課金モジュールのBIDは依存ファイルのとこで追加してあります。特権レベルは念のためWebとネットワーク両方につけた。

すんません、なんかヒントください。。。。

152:デフォルトの名無しさん
06/02/10 00:48:11
IGRAPHICS_SetDestination()で指定したビットマップへの
IGRAPHICSインタフェースでの描画が反映されない・・・
コードおかしいとこありますか?

AEELine pLine ;
IBitmap* pDst ; // デバイスビットマップ用
IBitmap* pBuffer = NULL; // 互換ビットマップ用
// なにか画面に書く
pLine.sx = 0 ;
pLine.sy = 0 ;
pLine.ex = 480 ;
pLine.ey = 960 ;
IGRAPHICS_DrawLine(pMe->pIGraphics , &pLine);
// デバイスビットマップを取得してみる
IDISPLAY_GetDeviceBitmap(pMe->pIDisplay, &pDst) ;
// 互換ビットマップを作成
IBITMAP_CreateCompatibleBitmap(pDst, &pBuffer, 240, 320) ;
// 互換ビットマップに書き込んでみる
IBITMAP_DrawHScanline(pBuffer, 150, 0, 200, IBITMAP_RGBToNative(pDst , 0x00ff00),AEE_RO_COPY) ;
// さらにGRAPHICSインスタンスでも書いてみる(ここが反映されてない)
IGRAPHICS_SetDestination(pMe->pIGraphics, pBuffer) ;
pLine.sx = 100 ;
pLine.sy = 100 ;
pLine.ex = 300 ;
pLine.ey = 600 ;
IGRAPHICS_DrawLine(pMe->pIGraphics , &pLine);
// 画面デバイスビットマップと互換ビットマップを合成する
IBITMAP_BltIn(pDst, 0, 0, 240, 320, pBuffer, 0, 0, AEE_RO_TRANSPARENT) ;
// 表示する
IDISPLAY_Update(pMe->pIDisplay) ;

153:デフォルトの名無しさん
06/02/10 00:53:33
>>152
色の指定は?

154:152
06/02/10 01:07:00
>>153
IGRAPHICS_SetDestination()の後にIGRAPHICS_SetColor()してみたら描画できました,ありがとうございます
IGRAPHICSインタフェースは描画に使ってる色をそのまま保持しつづけるんじゃないんですね

155:デフォルトの名無しさん
06/02/10 02:19:37
>>151
それに限らず、エクステンションなどの連携するアプリ同士はすべてがエミュ
レータから見える位置にないとダメ。
つまり、エミュレータがMIFを参照するのにどのフォルダを見に行ってるのか
調べてみれば・・・。

156:デフォルトの名無しさん
06/02/10 02:59:01
>>151
じぶんのアプレットと同じ階層のとこに入れておくんだ。
examplesフォルダとかややこしくなるから気にすんな
こんな感じに複数のアプレットがある状態にする。実機でも同じだよ

myapp,mif
myapp/myapp.dll
myapp/extension.txt
extension.mif
extension/extension.dll

157:デフォルトの名無しさん
06/02/10 04:00:52
>>155
>>156

mifはそもそもExamplesに入れたらダメなんですね。
自分の開発場所に課金認証のmifもってきたらISHELL_CreateInstanceできました。

いまやっとドキュメントの意味がわかったんですけど、BrewSDKはExamplesフォルダで開発することを想定して話しをしてるんですね。
ずっと連携(メーラとか)のアプリを作ったことがなかったんでExamplesの存在が謎だったんだけど、なるほどそーいうわけか。。。

こんな夜遅くに本当にありがとう。


158:デフォルトの名無しさん
06/02/10 09:34:47
今日は哲也くんだったのか

159:デフォルトの名無しさん
06/02/10 10:59:20
リーチだっ!
つ 検証

160:デフォルトの名無しさん
06/02/10 11:10:26
今は3ヵ月後くらいにツモ番が来るのか?

161:デフォルトの名無しさん
06/02/10 13:48:35
上様の言葉が真実なら仕様書の審査で2ヶ月待ってますが(´д`)


162:151
06/02/10 14:07:47
検証出したら待ちが7000件あるらしいっす。検証実施日は4月末
特急で儲ける気ですかね?キャリアが商売っ気出すとろくなことないんですが・・・。


163:デフォルトの名無しさん
06/02/10 14:13:53
審査ふくめで開発費用って
どのぐらいの費用が掛かるん?
開発する物の規模にもよるだろうけど。

164:デフォルトの名無しさん
06/02/10 21:39:13
全盛期の鈴Qなら20億もあれば1本作っただろう。

165:デフォルトの名無しさん
06/02/12 19:05:23
端末仕様についてちょっと質問です。

端末にて、押しっぱなしするとリピートされますよね?PRESS/KEY/RELEASEが全部くるもんでリピートの判別できません。
押しっぱなし状態と、1ショットキーを識別する方法はありますでしょうか?ちなみにW21CAなんですけど、他の端末も同じ仕様?

それと、キー操作音をONにしておくと、ピコピコなっちゃうんですけど、抑制する機能とかありますか?

どっちも仕様で無理っていうなら逃げれるんですが・・。

166:デフォルトの名無しさん
06/02/12 19:10:32
端末壊れてね?

167:165
06/02/12 19:13:44
>>166

たとえばどの点が?
リピートされるのがおかしいのか、それともキー操作音がなっちゃうのがおかしいんですか?

168:デフォルトの名無しさん
06/02/12 20:22:55
他に持ってないんか?

169:165
06/02/12 21:14:30
手元にあるのはW21CA(Brew2.1)、W32H(Brew3.1)の二つ。

W21CAは、上記の通りPRESS/KEY/RELEASEが全部リピートされてきました。そのときのdwParam値も0のまま。
W32Hは、PRESS/KEY/RELEASEがdwParam=0できたあと、KEYがdwParam=64(これリピートフラグ?)でリピートされます。

そこで質問。
Brew2.1はリピートフラグたたずにリピートされる?それともW21CAの固有の問題?


170:デフォルトの名無しさん
06/02/12 22:18:41
リピートフラグなんてあるのか。
俺は自前でリピート処理作ってるのに

171:デフォルトの名無しさん
06/02/12 22:22:08
>>169
>RELEASEが全部リピート
放すのがリピートってどういう状況だか理解できん。

あと、
>PRESS/KEY/RELEASE
KEYってなんだ?3種類あんの?

172:デフォルトの名無しさん
06/02/12 22:52:46
EVT_KEY
EVT_KEY_PRESS
EVT_KEY_RELEASE

3種類あるよ

173:デフォルトの名無しさん
06/02/12 22:59:02
3種類あるけど

EVT_KEY_PRESS   キーが押された
EVT_KEY_RELEASE キーが離された
EVT_KEY        キーに何かあった

だったと思われる。

174:165
06/02/12 23:04:57
>>170
ある

>>171
EVT_KEY_PRESS/EVT_KEY/EVT_KEY_RELEASE
それぞれ、
押された時/もっかい/離したとき
にくる。

Brew3.1ではHandleEventの4番目の引数がtrueでくるとリピートで、押しっぱなしにすると
PRESS:0→KEY:0→(リピート動作)KEY:true→KEY:true→・・・(離すと)RELEASE:0
でくる。

Brew2.1(2.0も)では、
PRESS:0→KEY:0→RELEASE:0→(リピート動作)PRESS:0→KEY:0→RELEASE:0→・・・
でくるので判別不能。

175:デフォルトの名無しさん
06/02/12 23:26:33
>>174を誰か訳して

EVT_KEYがもっかいって、おかしいよな。方言?

176:デフォルトの名無しさん
06/02/12 23:53:56
>>165はサービスガイドを読んでよ。答えが書いてあるじゃんか。

177:デフォルトの名無しさん
06/02/13 00:15:00
端末によっては、複数同時押ししたときなんかは
最後に反応したキー以外リピートしなかったりするので
そもそも、端末のリピートに頼るの危険。

178:165
06/02/13 00:36:56
>>175
え、方言?もう一回=もっかいって言わない?
EVT_KEYは「確定/決定」らしい。なんで押されたイベントが2回くるのかわからなかったけど、KEYで確定とするらしい。

>>176
答え書いてありました。ちなみにさっきの微妙に嘘ついてます。
Brew2.1
PRESS:0→KEY:0→(リピート動作)PRESS:0→KEY:0→・・・(離すと)RELEASE:0  (←RELEASEは最後の1回しかこない。)
ちなみに今確認したんだけど、上キーを押すとPRESSイベントがこない(KEYはくる)。なんでだ・・・。


179:デフォルトの名無しさん
06/02/13 00:52:07
どんなすごいソフト作ってんの?

180:デフォルトの名無しさん
06/02/13 09:21:57
>>165
書類全部読み直せ。

181:デフォルトの名無しさん
06/02/13 09:35:35
ぷっす・りりーすのいべんとはんていできーたすくしょりしる



△ 4点

182:デフォルトの名無しさん
06/02/13 09:49:30
おれ、KEYとRELEASEしか使ってなかった。リピートはこの二つ使って自前処理している。
PRESSは存在を知らなかったよ。レスを見ているとそれで無難な方法だったようだね。

183:デフォルトの名無しさん
06/02/13 11:55:20
>>182
同じくKEYとRELEASEだけでリピート、ワンショットやってる。

PRESSは終了するとき使うとすぐアプリが起動するから使うなとかなかったけ?
普通の時は問題ないだろうけど。

184:デフォルトの名無しさん
06/02/13 12:19:31
PRESSはなんか動きが変っぽかったから使わなくした


185:デフォルトの名無しさん
06/02/13 18:08:26
BREW3.1について質問です。
自アプリサスペンド中に他のアプリによりメモリ確保が発生し
自アプリが強制終了するので現状をファイルに出力して終了
するように作るのを推奨しますみたいなことがサービスガイドに
書いてありますけど、これやんなきゃ検証通らないんでしょうか?
ていうか、みなさんどうしてます?
できればこの処理はいれたくはないんですが…

186:デフォルトの名無しさん
06/02/13 18:24:49
>>185
2.1を3.1にしたものしかやってないけど
うちではファイル出力はしてないです。検証は通ってます


187:デフォルトの名無しさん
06/02/13 18:24:51
推奨と必須は違うと思う……。

188:185
06/02/13 18:54:57
>>186
即レスありがとうございます~
大変参考になりました。

>>187
うう…おっしゃるとおりです。orz
ただちょっと検証がトラウマになってまして…

189:デフォルトの名無しさん
06/02/14 22:44:40
Brew3.1でファイル(100byteくらいのテキスト)をオープンしようとすると、なぜか開けない。
もともとあるファイルを開こうとしてるだけだからEFSエラーで0byteのファイルができちゃう不具合とは違うんだけどなんでですか?
MIFの最大ファイル数を9999とかにすると開けるようになるんだけど、エミュじゃなくて実機でも同じくなる。Brew3.1ってここ空欄じゃダメなんですか?


190:デフォルトの名無しさん
06/02/14 22:56:59
>>189
IFILEMGR_GetLastError()

191:デフォルトの名無しさん
06/02/14 23:01:18
2.1でも3.1でも
MIFの最大ファイル数なんか設定したことないな。
まあテキストファイルを開いたこともないけど

192:デフォルトの名無しさん
06/02/14 23:46:32
ファイル名が大文字とか...でも実機だとAppLoaderで転送する時に小文字に変換されるはずだな。

193:デフォルトの名無しさん
06/02/15 00:09:26
3.1 で大文字と小文字を混ぜて使ってるとおかしくならない?
俺はそれのせいで 2.1 → 3.1 移植ではまった覚えがあるんだが...。

194:デフォルトの名無しさん
06/02/15 03:46:43
>>193
なるかもしれないね。
だからこそだろうけど、BREW3.1ではファイル名を全て小文字にせよとガイドに明記されている。

195:デフォルトの名無しさん
06/02/16 13:08:30
クアルコムのBREWサイトがメンテ中。

This system is currently undergoing scheduled maintenance
and will be unavailable until 9:00PM PST on Wednesday February 15, 2006.

となってるんだけど、15日夜9時って、日本時間だと今日の何時?


196:デフォルトの名無しさん
06/02/16 13:11:47
>>195
自己解決。PSTって書いてあるじゃん!
時差17時間だから、午後2時開店予定だな。
あと50分か・・・。

197:デフォルトの名無しさん
06/02/16 13:35:19
よくあるよくある

198:デフォルトの名無しさん
06/02/16 20:42:23
サーバデータ受信を「1つの自作関数呼出し」だけで行うといった
方法は無理なのでしょうか?

int CmnWebAccess(XXX pMe, char* pszURL, char* pResp);

戻り値:受信バイト数
pszURL:URL
pResp:受信バッファへのポインタ

上記のような1つの関数を1回呼び出すだけで、
サーバからのデータを格納させたいと思っています。

しかし、サーバ通信は非同期(コールバック関数複数呼出し)であるため、
ラッパ関数内で、その間、受信完了まで制御を止めなければなりません。

サーバからの受信が完了してから、呼び出し元に制御を戻すようなことは
出来るのでしょうか?


199:デフォルトの名無しさん
06/02/16 22:15:16
制御を戻すっていうのを、呼び出し元が能動的に処理するか受動的に処理するかで変わるよな。

能動的に処理するなら、pMe にステータス変数を作っておいて、その値を常に確認する。
で、全ての処理が終わったという状態になったら、次の処理を行う。

受動的に処理するなら、呼び出し先にコールバックされたい関数(へのポインタ)を
pMe のどっかに入れて、呼び出し先の処理が終わると同時にその登録された関数を呼び出してもらう。

200:デフォルトの名無しさん
06/02/16 22:23:16
受信終了まで OS に return しないで済む方法はないか、と言いたいんちゃう?
ちなみに無理だけど。

201:デフォルトの名無しさん
06/02/16 22:25:59
ああ、「1つの自作関数呼出し」だけでするのか。
だったら pMe の中に状態を表す変数をおいといて、
この関数の中でその状態ごとの処理をすればいいんじゃないかな。
ただ、最初に状態を初期化してやる必要はある。

しかもこれ、引数があるってことは能動的に処理するってことだよな。
制御を止めてるのに引数の確認をしたいってのは意味が分からんな。

202:デフォルトの名無しさん
06/02/17 09:11:43
とらあえず言葉での説明が難しいなら
ソースを提示してくれればアドバイスしやすいかも

203:デフォルトの名無しさん
06/02/17 10:00:19
BREWでマスコットカプセルを使ってるのですが、
DoJa版マスコットカプセルのAffineTrans#lookAtに該当するのは
BREW版ではIMICRO3D_Atrans3i_setViewTransですよね?

同じ値のベクトルを渡してるのに、出来上がる行列が
まったく違うのはなぜでしょうか?

204:デフォルトの名無しさん
06/02/17 10:19:13
>>199>>201
難しく読み取りすぎ。わざとやってるならいやらしい奴だ

205:199
06/02/17 11:48:52
>>204
すまんす。わざとじゃないんだけどね...。

つまり関数の中で、

switch( pMe->state ){
case 0: // 初期状態
  ...
  break;
case 1: // 受信中
  ...
  break;
case 2: // 受信終了
  ...
  pMe->result = ... // ここに結果を書く
  break;
}

こんな感じに書いておいて、メイン側は、メインループ内で、

CmnWebAccess( ... );
if( pMe->state == 2 ){
  // 受信完了
}

これでグルグル回せばええんじゃないかなと。
さすがにネイティブからのコールバック関数は別にする必要があるけど、
メインループ内では一つの関数で処理出来る。

206:デフォルトの名無しさん
06/02/17 13:05:31
>>205
>200の時点でそーいう話じゃないって指摘が出ている。


207:198
06/02/17 13:08:21
以下のような処理を行ってみましたが、
CmnWebAccessのwhileループで、固まってしまいます。
Windowsとかでしたら、ループ処理内にPeekMessageなどを逐一呼び出すことで、固まったりしないですよね。

// クリックイベント
OnClick() {
  // 呼び出し元は1コールで指定URLからデータ受信する。
  CmnWebAccess(...);
}

// ダウンロードライブラリ関数
int CmnWebAccess(XXX* pMe, char* pszURL, int nHttpType, char* pbuf, int nLen, char* pRespBuf)
{
  pRespBuf = NULL;
  // ウェブアクセスに関する初期化処理およびダウンロードの開始を行う。
  //(コールバック関数登録やIWeb_GetResponseの呼び出し)
  if (_prCmnWebInit(pMe, pszURL, nHttpType, pbuf, nLen) == FALSE) {
    return 0;
  }
  // ダウンロード処理が終わるまでループする。
  while (1) {
    // コールバック関数が呼び出されてダウンロード処理が続行されることを期待するが。。。
    // ここでループ処理をしてしまうと、コールバック関数のダウンロードが実行されない。
    if (pMe->m_cmnWeb.m_nWebStatus == WEB_HTTP_STS_END) {
      break;
    }
  }
  // pRespBuf MALLOCでバッファを設定する処理 ...
  return pMe->m_cmnWeb.m_nBufResp;
}

208:デフォルトの名無しさん
06/02/17 13:40:04
>>198
お前もかw
>200の時点で無理だと言っている。
BREWはPeekMessageもスレッドも使えないので不可。
while(1)でメインスレッドが占有されるから他に処理が移行しない。


209:デフォルトの名無しさん
06/02/17 14:17:14
>>208
BREW3.1なら可能。

210:デフォルトの名無しさん
06/02/17 14:25:22
ITHREAD(だったっけ?)を使っても、結局システムに処理を返さないとダメ

211:デフォルトの名無しさん
06/02/17 18:38:37
ILOGGERでログファイルに出力したいんですが、0バイトのファイルができるだけで、書き込まれません。

URLリンク(pokke-island.jp)
このサイトを参考にしてます。

アプリ開始時に、
pMe->piLogger = NULL;
ISHELL_CreateInstance(pMe->pIShell,AEECLSID_LOGGER_FILE,(void**)&pMe->piLogger);
ILOGGER_SetParam(pMe->piLogger,AEE_LOG_PARAM_FILE_NEW,_OFM_READWRITE,"journal.log");
ILOGGER_SetParam(pMe->piLogger,AEE_LOG_PARAM_FILTER_ONE,1,TRUE);
ILOGGER_SetParam(pMe->piLogger,AEE_LOG_PARAM_SENT,0,NULL);

ログ出力したいところで、
ILOGGER_Printf(pMe->piLogger,(pMe->piLogger,1,__FILE__,__LINE__,"LOG Message"));

アプリ終了時に、
ILOGGER_Release(pMe->piLogger);
pMe->piLogger = NULL;

という感じでコーディングしています。
因みにMIFでは、
 ・特権レベルでファイルにチェック
 ・EFS最大ファイル数=100
 ・EFS最大容量=1024000
としています。
機種はW32Hです。

原因がお分かりの方、よろしくお願いします。


212:211
06/02/17 19:37:23
すいません、
ILOGGER_SetParam(pMe->piLogger,AEE_LOG_PARAM_FILTER_ONE,1,TRUE);

はコンパイルでエラーが出たので、
ILOGGER_SetParam(pMe->piLogger,AEE_LOG_PARAM_FILTER_ONE,1,(void*)TRUE);
にしてあります。

よろしくお願いします。


213:198
06/02/17 20:37:58
みなさん。返信ありがとうございます。
(ちなみに開発環境はBREW2.1です)

一つの関数では無理とのことなので、
WEB受信完了の通知関数別に作って対処しました。

// クリックイベント
void OnClick()
{
  char szSend[] = "hello send message.";
  // データをポストする処理を行う。
  // 以降、内部ではコールバック関数が呼び出されサーバ受信処理が走る。
  CmnWebOpen(pMe, "URLリンク(www.xxx.jp)", CMN_HTTP_POST, szSend, sizeof(szSend));
}

内部では、
ISOURCE_END がきたら 通知イベント関数を呼び出す。

// 通知イベント
void OnCmnNotifyEvent(XXX* pMe, int nNotify)
{
  if (nNotify == CMN_NOTIFY_WEB_FIN) {
    // サーバからの受信データを取得する。
    char* pRespBuf = NULL;
    int nGetData = CmnWebGetData(pMe, &pRespBuf);
if (nGetData > 0 && pRespBuf != NULL) {
      // ファイルに保存などの何らかの処理…
    }
// サーバ通信を終了する。
CmnWebClose(pMe);
  }
}

214:デフォルトの名無しさん
06/02/21 13:13:24
平和なのか、誰もが余裕でBREWを使いこなしているのか、
はたまたkのお役所仕事で待ちぼうけしてるだけなのか・・・


215:デフォルトの名無しさん
06/02/21 13:47:54
今iアプリで忙しい(`・ω・´)

つーか、まともな企画書も書けないゲーム屋が
3キャリアで出したいとか言ってるのを聞くと笑える。
そんな感じでBREWは停滞気味。

216:デフォルトの名無しさん
06/02/21 13:53:13
みんなbrewをやる気がないだけ

217:デフォルトの名無しさん
06/02/21 16:59:40
はねられてショボン中。

218:デフォルトの名無しさん
06/02/21 23:39:40
IPREMIUMの開発用スタブの使い方教えてください。

1。Brewの開発フォルダの「inc」に「開発用スタブ」のipremium.hとipremium.bidを入れる。
2。自分のアプリと同じとこに、「開発用スタブ」のipremium.mifを置いて、ipremiumフォルダを普通のアプリみたいに置く(中身はDLL)

これで基本的にインスタンスは生成できるようになります。

ほんで、IPREMIUM_TEST.txtなんですが、これはipremiumフォルダに突っ込めばよいですか?
readmeによると、このtxtの~=0とかを書き換えると、その値を返すようになりますよーと書いてあるんですが、実際返ってこないです。なんででしょう・・。

txt中に
「スタンドアローン購入 応答」
/* 結果コード */
IPREMIUM_SAPR_RSP_rslt_cd = 00
/* 結果事由 */
IPREMIUM_SAPR_RSP_rsn_cd = 003
/* トランザクションID */
IPREMIUM_SAPR_RSP_tran_id = 12345678900987654321

とあるので、
ret = IPREMIUM_SAPurchaseRequest(
app->premium,
app->premium.SA_purchase_snd,
app->premium.SA_purchase_rsp );
ってやると、app->premium.SA_purchase_rspには何にも入ってません。なぜ??


219:デフォルトの名無しさん
06/02/22 00:19:43
IPREMIUM_TEST.txt は自分のアプリと同じフォルダ。

220:218
06/02/22 01:11:17
>>219

エミュレータで自分のフォルダに入れたらちゃんとレスポンス受け取れました!!
ちなみに端末でチェックする場合、どうすればいいですか?

自分でやってみたのは、
普通のアプリと同じくipuremiumという名前でテストsigを取得して、
同じく「開発環境認証課金モジュール」のipremiumフォルダとmif、テストsigを端末に転送

とやってみたのですが、提供者コードエラーとかでOKが返ってきません。提供者、情報コード、アイテムコードは正常に取得しています。
なにか問題があるとすればどこでしょうか?


221:デフォルトの名無しさん
06/02/22 01:16:54
エミュで自分のアプリと同じフォルダだったんだから、
実機でも自分のアプリと同じフォルダに決まっとろうが

222:218
06/02/22 01:55:37
>>221

ん?意味がわからぬ・・・。ipremium.modを自分のアプリと同じフォルダに入れろって意味?

223:218
06/02/22 02:03:26
開発用スタブを端末に転送して、自分のアプリフォルダにipremium_test.txtをいれたらテストできるのはわかった。
そこで、今度は実際に課金のチェックをしたいわけなのだが、そうなるとipremium_test.txtは関係ないですよね?
開発環境認証課金モジュールの中身を転送したら良いのかなぁと思って実行してみたんだけどエラーで飛んじゃうんです。。

224:デフォルトの名無しさん
06/02/22 02:23:14
>>218
>IPREMIUMの開発用スタブの使い方教えてください。

このモジュールはスレで話題にしない方がいいんじゃないかな。
オフィシャルのサポートへ質問してみなよ。
委託開発とかなら元会社通して質問。

225:デフォルトの名無しさん
06/02/22 02:23:32
>>223
その領域になると答えるほうも大変だな。答えていい事柄かどうか。
とりあえず、その思いつきは当たりそうだけど外れ。
ドキュメントちゃんと読もう。なけりゃ請求するなりなんなり。

226:218
06/02/22 02:33:51
>>224
>>225

自分がやってるチェックの仕方があってるか間違ってるかわからないんですよねぇ・・。
調べてほしいと言われているので元請けにきいてわかるわけもなく。。大人の事情で困ってるのですわ。
ドキュメントはBrew開発支援サイトから課金モジュールのzipはもらってる。
そこにはほぼ説明なしのモジュール群と、サンプルアプリのみ。
プログラムはサンプルを元にして作ってみたのだけど、端末におくとちゃんと動作しないときた。

実機に、何をどんな感じで置けばいいのか、それだけ教えてくださいませ。。。。お願いします、みなさまがた。

227:デフォルトの名無しさん
06/02/22 03:13:10
>>226
それしか貰ってないの・・・って、よく作れますなΣΣ(゚Д゚;)
あからさまに情報不足じゃないですか。

とりあえず、
-
ここがまちがい→開発環境認証課金モジュールの中身を転送したら良いのかなぁ
でも開発用スタブは通信しないから・・・
-
とだけ書いておくっす。なぜかは違う資料読めば書いてあるんだけど。
残りはかけるぎりぎりのライン引きがわかる人や勇気のある方に↓


228:デフォルトの名無しさん
06/02/22 03:28:33
>>226
>ドキュメントはBrew開発支援サイトから課金モジュールのzipはもらってる。

そのモジュールのドキュメントがある。それがないと絶対に仕事は進まない。
ちゃんとそう言って元請けからそのドキュメントを受け取るしかないな。

229:218
06/02/22 03:31:35
>>227

えぇ、それだけなんですorz

「でも開発用スタブは通信しないから」
okです。ここは理解してます。
開発用スタブ
開発環境認証課金モジュール
商用認証課金モジュール
と3つありますよね?それぞれどういう使い分けをしたらよいのですか?
開発用スタブは、たぶんテキストを書き換えて、それぞれのメソッドの返す値を自分できめて動作チェックするものと理解できてます。


230:218
06/02/22 03:34:48
>>228

「そのモジュールのドキュメントがある。それがないと絶対に仕事は進まない。 」
そいつはBrewの支援サイトじゃなくて、調味料とかいう名前のサイトからじゃないとダウンロードできないですか?
支援サイトにはモジュールのzip以外になんにもなかったっす。

231:デフォルトの名無しさん
06/02/22 04:19:36
>>229
> それぞれどういう使い分けをしたらよいのですか?
モジュールの使い方、使用目的含めすべて足りない書類に書いてあります。
モジュールが返す結果のデータの内容の意味などにも、それらの足りない
書類が必要で、それがない状態ではまず作成できないはず。

でもそれがあるのは、支援サイトではないところ。なので、なければ仕事に
ならないということで請求してください。

232:デフォルトの名無しさん
06/02/22 08:24:18
書類読んだ方がいいな。
開発環境用が通信するなら通信先はKの鯖だろうし、
あのKが申請だの登録だの無しに鯖を使わせるとも思えん(´・ω・`)

と、推測したようなこと書いておく。

233:デフォルトの名無しさん
06/02/23 08:32:52
BREW2.1環境下です。

1、AppLoaderで必要無いデータを全部消す
2、テストツールと目的のアプリを転送する
3、目的のアプリを起動する(テストツール何もいじらず)
4、1度起動させたら1へ戻る

特定の機種で3の段階でたまーにメモリアクセスエラーが出ますorz
初回のみしかエラーが出なくて、それ以降はン百回やっても普通に起動。
初回起動時ってmifが暗号化されてサイズ増えるくらいしか認識してないんですが、
それ以外でも注意しなきゃいけない事ってありますかね・・・?

234:デフォルトの名無しさん
06/02/23 09:44:07
よくわからんエラーはリークによるアクセス違反関係じゃね?
初回起動時のみメモリの配置の仕方が違っていて、初回起動時だけエラーが発生したとか。

235:デフォルトの名無しさん
06/02/23 14:00:40
転送後にちゃんとリセットしてるか?

236:デフォルトの名無しさん
06/02/23 14:17:12
>>233
>初回のみしかエラーが出なくて
もろに初期化忘れの症状に読める

237:デフォルトの名無しさん
06/02/23 14:44:21
質問の内容が「私のプログラムにエラーがあります」に見える。

238:デフォルトの名無しさん
06/02/23 15:11:01
携帯にGeForce5500が乗るようになりつつあるらしいけど
DirectX まだですか?

VRAM自力でアクセス汁って事でよろしいのか。


239:デフォルトの名無しさん
06/02/23 15:14:31
OpenGL ES があるだろ?

240:デフォルトの名無しさん
06/02/23 18:20:14
>>233
それって共有ディレクトリにアクセスしたりする*.oをリンクさせる最近のアレ?
それならうちもなります。初回だけでも実機で落ちると心臓痛くなりますね…。

241:デフォルトの名無しさん
06/02/23 19:35:39
BREW3.1用の日本拡張パッケージファイルってどこで入手できますか?
ググると、下記のサイトで無料でダウンロード出来ると書いてあるんだけど、
見当たりません。

URLリンク(www.au.kddi.com)

グーグルキャッシュで上のページを見ると、BREW2.0、2.1用のはあるんだけど、
3.1用は無いようです。

ちなみにまだCP契約はしてません。


242:デフォルトの名無しさん
06/02/23 21:55:23
Brew3.1でちょっと質問。

W31Tでアプリを起動するとなぜかAEEClsCreateInstanceが二回呼ばれているようなんだけどなんで?

int AEEClsCreateInstance( AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj )
{
DBGPRINTF(">>AEE into");
if( ClsId == AEECLSID_HOGE ) {
if( AEEApplet_New( sizeof(SYSTEM), ClsId, pIShell, po, (IApplet**)ppObj,
・・・

みたいにしてやってるんだけど、

ロガーでみると、”>>AEE into”が2回呼ばれてます。東芝仕様??
なして?

243:デフォルトの名無しさん
06/02/23 22:53:02
というかAEEClsCreateInstanceがコールされるのは1回のみ、
というルールは無いと思うんだが?
カタログとかが、必要なクラスIDか、なんかの内部チェックがなにかで、
全部のアプレットに対してenumする、というのはありそうな気はする。

244:242
06/02/23 23:06:52
>>243

>というルールは無いと思うんだが?

え?じゃぁAEEApplet_Newでtrueだったから初期化コード埋め込んでたんだけど、ダメじゃん・・・。
EVT_STARTは1回だけ呼ばれるので間違いないですよね?

どうも一発起動でのみおかしな動作をするんだけど、一発起動で起動したアプリに特殊な判定とかいる?
自分の認識では、サスペンドされていたらEVT_RESUMEが呼ばれて、そうじゃなければ普通にAPP_STARTするって認識なんですけど。

245:デフォルトの名無しさん
06/02/24 01:10:50
いや、そういう意味ではないんだが。
AEEClsCreateInstanceの一回目と二回目ともClsIDにはAEECLSID_HOGEが入ってきて呼ばれてる?
それなら変な動作というのは解るが、別々のクラスIDで実行される可能性があることは、
1番最初にクラスIDで比較していることから予測できることだろう、ってことで。

ちなみにW31Tでの一発起動で、特に変な動作になったことは俺はないよ
特別なコードも入れていない。起動時にソフトキーの判定を無効にはしているが。

246:デフォルトの名無しさん
06/02/24 01:23:30
>>245
31Tの一発起動なら音関係で問題あったことあったな。
AEEClsCreateInstance()内でIMediaの作成すると再生しても音が鳴らず
エラーも終了イベントも来ない変なのが作成されちゃうってやつだったかな。


247:242
06/02/24 03:32:33
>>246

そうまさにそれ。

Loggerの吐く情報が正しいとすると、
31Tのみ、なぜかAEEClsCreateInstanceが自分のアプリIDで2回呼ばれて、しかもEVT_APP_STARTも2回呼ばれる。
さらに一発起動時にはどちらでIMediaをcreateしてもcreateできるくせに鳴らないIMediaができちゃう。
tmer使って最初のとこでIMedia作らないとおかしなことになります。

248:デフォルトの名無しさん
06/02/24 03:50:52
>>247
あれ?
俺はAPP_START呼ばれた直後にIMedia作るようにしたら直ったと思ったけど。

249:242
06/02/24 06:34:32
>>248

いろいろいじって最終的に落ち着いたとこがそこだった。APP_STARTで作っても鳴るかもしれない。
とりあえずAEEClsCreateInstanceじゃ作っちゃダメだった。

250:デフォルトの名無しさん
06/02/24 07:13:43
まあつまり、AEEClsCreateInstance ではアプレット生成以外のことはするなって事だぁね。

251:デフォルトの名無しさん
06/02/24 09:42:33
>>247
お、そんな症状があるんだな。それは知らんかった。俺は

1.APP_START 必要最小限のメモリ確保、起動してます表示、タイマーセット、return
2.タイマー内でデバイス周り初期化、タイマーセット
3.通常処理

と、この流れで組んでるから気にしたことなかったな
もともと1で起動してます表示を、すぐに画面に反映させるためだったんだが

252:デフォルトの名無しさん
06/02/24 10:38:12
>>240
>それって共有ディレクトリにアクセスしたりする*.oをリンクさせる最近のアレ?
最近のアレって何?
なんか情報出てる?

253:デフォルトの名無しさん
06/02/24 15:02:18
>>252
最近(といっても2ヶ月くらい前)サービスインしたやつのことかな?
簡単そうだけどめんどくさそう。

254:デフォルトの名無しさん
06/02/27 15:07:06
Brewの話題と直接関係ないんですけど、webアクセスするときにレスポンスのチェックとかどうやってます?
そういうツールがあったら教えてほしいんですが。。。

・ヘッダを書き換えられる(User-Agentとか特殊なヘッダ情報つけるとか)
・レスポンスをヘッダから全部みれる

もしあったら教えてくださいませ。

255:デフォルトの名無しさん
06/02/27 15:46:12
telnet

256:デフォルトの名無しさん
06/02/27 18:26:37
>>255

いや、そーいうことではなく・・。telnetはそれはそれでいいとして、たくさんあるUser-Agentをプルダウンで切り替えて・・・とかそんな感じの。


257:デフォルトの名無しさん
06/02/27 18:42:32
自分で書けば?

258:デフォルトの名無しさん
06/02/27 21:05:48
irvineでも使えばぁ

259:デフォルトの名無しさん
06/02/27 22:40:02
>>246

FireFoxのuser agent switcher
URLリンク(firefox.geckodev.org)

自分はこれ使ってテストしてるよ。


260:よね
06/03/03 15:26:42
エクステンション作るんですがエクステンションのサンプルソースってどこかにありますか?

261:デフォルトの名無しさん
06/03/03 17:15:35
つ[プログラミングガイド]

262:デフォルトの名無しさん
06/03/06 16:48:36
あるイベント時が発生したときに、
連続してIWEB_GetResponseでデータを順次取得することは可能なのでしょうか?

アプリ起動時に、IWEB_GetResponseを使ってサーバからデータ
を取得する処理を書いています。
1箇所のURLに対するGET/POSTなら当然ですが、問題なくデータ取得可能です。
しかし、
連続して2箇所以上のURLに対して、順次、IWEB_GetResponseを呼び出して
サーバからデータを取得するように書くと、1箇所目のIWEB_GetResponseが
無視され(?)、2箇所目のデータの取得となってしまいます。

BREW2.1です。

263:デフォルトの名無しさん
06/03/06 17:01:18
1.データ受信が終わってから次のURLにアクセスする
2.IWebとIWebRespを同時に通信する数用意する

っていうのじゃあかんのん?

264:262
06/03/06 17:39:49
素早いレスありがとうございます。

> 1.データ受信が終わってから次のURLにアクセスする

一つのイベント内で、受信要求を順番に呼んでおり、
受信が完了する前に次の要求が実行されてしまい、
データ受信を待つことができない状況(?)です。

> 2.IWebとIWebRespを同時に通信する数用意する

コールバック関数を複数用意するということですね。
(あるイベントで同時に通信する可能性があるのが例えば5個なら5個)

具体的には、
・起動イベント発生時、
 コールバック関数の番号とともにWebAccess用ライブラリを呼び出し、
 指定番号のコールバック関数を登録した上でIWeb_GetResponseを呼び出す。
  WebAccess(pMe, "URLリンク(abc.jp)", 1); // コールバック1
  WebAccess(pMe, "URLリンク(abc.jp)", 2); // コールバック2
  WebAccess(pMe, "URLリンク(abc.jp)", 3); // コールバック3

・受信コールバックでは、
  コールバック関数1で受信処理
  コールバック関数2で受信処理
  コールバック関数3で受信処理
 を行う。

・受信完了イベントを、コールバック関数の番号と合わせて通知する。


265:デフォルトの名無しさん
06/03/06 18:21:50
アクセス要求をキューに入れて管理すればええんじゃねえの?

266:デフォルトの名無しさん
06/03/06 18:34:58
>>262
とりあえずAEECallbackとPFNNOTIFYをtransactionの数だけ用意しなきゃ無理

267:デフォルトの名無しさん
06/03/06 20:04:17
>>264
複数箇所に同時に通信しなくちゃいけない、というわけでないなら
芋づる式に通信開始処理とコールバック関数を呼び出して行けば
いいだけじゃないの?

1.例えばキー押下で1箇所目のURLへ通信を開始する。
 受信のコールバック関数をresA()とする。
2.resA()で受信完了の判定をしたら、
 その場で2箇所目のURLへ通信を開始する。
 コールバック関数をresB()とする。
3.resB()で受信完了の判定をしたら、2箇所とも通信が完了。

268:262
06/03/06 21:45:15
> 芋づる式に通信開始処理とコールバック関数

助言の方法でできそうなのですが、
ただ、
サーバ通信ライブラリを作成していまして、
ライブラリの使用者からは、コールバック関数などの
内部の関数をできるだけ触らせない方向の仕様で行かざるをえず…

なのでライブラリ使用者からは、通信開始処理と終了通知のみ
を提供する形に現在しています。

そうなると、>266 さんのおっしゃるように、
必要な数だけ必要そうですね。


269:262
06/03/06 22:09:08
皆さんありがとうございました。
続けて質問させていただきます。

IHtmlViewerで表示したコンボボックスがあります。
このとき特定のコンボボックスが変更されたというイベントを取得する
ことは可能なのでしょうか?

コンボボックスを変更すると、
IHtmlViewerのコールバック関数が呼ばれますが、
pNotify->codeには、HVN_REDRAW_SCREEN が格納されており、
ただ単にページをRedrawするために呼ばれているようです。


270:デフォルトの名無しさん
06/03/06 22:26:50
画面遷移時じゃなくて各ボックスとかの値を後でまとめて処理すりゃええやん?

271:よね
06/03/07 15:59:13
スタティックエクステンションを2アプリから同時利用する事を考えており、
2つのアプリで別々のインスタンスを生成することを想定しています。

スタティックエクステンションは1つのインスタンスしか生成できないということを聞いたのですが、
このような制約があるのでしょうか?

1つはバックグラウンドでもう1つはトップビジブルのアプリです。

272:デフォルトの名無しさん
06/03/07 16:57:35
>スタティックエクステンションは1つのインスタンスしか生成できないということを聞いた

どこから?

273:デフォルトの名無しさん
06/03/07 19:37:35
>>271
何のためにリファレンスカウントがあると思ってるんだと。

274:デフォルトの名無しさん
06/03/08 23:16:54
みなさんBREWでどんなデザインパターンを使っていますか?

275:デフォルトの名無しさん
06/03/08 23:50:07
singleton

276:デフォルトの名無しさん
06/03/08 23:52:19
Generation Gapパターンとか使わないんですか?

277:デフォルトの名無しさん
06/03/09 08:15:27
Single Threaded Execution パターンは必須だろ?

278:デフォルトの名無しさん
06/03/09 11:15:42
>>273
共有するのでなければリファレンスカウンタは関係ないだろ

279:デフォルトの名無しさん
06/03/09 11:27:42
>>278
スタティックエクステンション内部の1つしか生成出来ない部分は内部的に参照カウントを持っていて、
CreateInstance で生成されると、そいつの参照カウントが増えるってことだろ。


280:デフォルトの名無しさん
06/03/09 11:56:03
おい、お前等
デザインパターンって何ですか?

281:デフォルトの名無しさん
06/03/09 14:36:17
>>280
そんなことも知らないでプログラマをやっていられるとは幸せなお方ですなー
デザインパターンはプログラマの武器ですぞ

282:デフォルトの名無しさん
06/03/09 15:02:09
あ、俺も知らないー(´Д`)ノ

聞いても>>281のように返される釣り煽り用の言葉って認識かな。

283:デフォルトの名無しさん
06/03/09 15:11:46
スレッド管理が出来ない馬鹿に「スレッド使うな」って言うより
「Single Threaded Execution パターンに汁」といった方が解りますん


284:デフォルトの名無しさん
06/03/09 15:50:29
「スレッド使うな」じゃ全く意味が違うと思うが・・

285:デフォルトの名無しさん
06/03/09 15:54:55
互いにデザパタが使えると、話もスムーズに進むね。
「この辺は NullpoObject と Proxy パターンを使って実装して、こいつの生成は FactoryMethod を使おう」
とか。

286:デフォルトの名無しさん
06/03/09 15:59:13
え、携帯アプリって一人で作るもんじゃないの?(´・ω・`)

287:デフォルトの名無しさん
06/03/09 17:24:03
そのとおりだ

288:デフォルトの名無しさん
06/03/09 17:30:34
singleton使いてぇ

289:デフォルトの名無しさん
06/03/09 17:40:48
そういえばAEEMod_Loadから8バイトマイナスしたところにヘルパ関数のバージョンが入ってるから、
そいつを欲しいオブジェクトへのポインタに書き換えたらsingleton使えるな。
もしくは適当なダミーの領域を作って書き換えるか。

290:デフォルトの名無しさん
06/03/09 18:23:46
AEEModGen.c/h変えるだけでOKでそ
Appletのインスタンスはどうせ1つしか作られないから意味ないけど

あ、複数Appletを単一modで提供する場合は意味あるか
(その形で提供する意味がイマイチわからんが)

291:デフォルトの名無しさん
06/03/09 18:36:23
>>290
だね。複数のAppletから同じインスタンスを参照したいときぐらいしか役に立たない気がする。
Appletごとに単一のオブジェクトはIApplet継承クラスに書けばいいし。

292:デフォルトの名無しさん
06/03/09 21:48:56
IWEB_GetResponseを使用して必要な内容をすべて正常にPOSTしたあと

while( CALLBACK_IsQueued(&p->webCallBack) ) {
CALLBACK_Cancel(&p->webCallBack);
}

if( p->pWebRes != NULL ) {
IWEBRESP_Release(p->pWebRes);
p->pWebRes = NULL;
}

if( p->pGetLine != NULL ) {
IGETLINE_Release(p->pGetLine);
p->pGetLine = NULL;
}

みたいな感じであとかたづけしているんですが
ピクト点滅(携帯電話のAというアイコン?みたいなやつ)
が止まりません。

IWEBインスタンスは使いまわしするみたいなことがマニュアルにあったので
IWEB_Releaseはアプリを終了するときにしか呼んでいないんですが
これが原因なのでしょうか?

経験ある方アドバイスありませんか?

293:デフォルトの名無しさん
06/03/09 21:59:51
while( CALLBACK_IsQueued(&p->webCallBack) ) {
CALLBACK_Cancel(&p->webCallBack);
}
で泊まってるんでそ

294:デフォルトの名無しさん
06/03/09 23:04:21
>>293
あり?CALLBACK_IsQueued(&p->webCallBack)まちがってた?
もしかしてキューにたまってるかどうかなんて気にしないで
CALLBACK_Cancelしちゃうべき?
それとももっと勘違いでCALLBACK_Cancelしちゃだめ?



295:デフォルトの名無しさん
06/03/09 23:15:58
>>282
煽ったつもりは無いが
プログラマなのに知らないとホントに煽られちゃいますぞ
知ってて当たり前のプログラマの常識なのに。

限られたメモリしか使えない組み込み系だと
それも常識ではなく例外になるのですかねえ?


296:デフォルトの名無しさん
06/03/09 23:17:45
>>286
某ワ○○グでは一人で作ることが困難なことが
作り始めてから解り始めて、
数十人の体勢で開発したものの
見事に納期が遅れましたとさ。
顧客の態度に頭に来たことと給料があまりにも
安いことから辞めてしまった社員がたっぷりいます。


297:デフォルトの名無しさん
06/03/09 23:31:33
一人でケータイアプリが作れないなんてバカなだけだろ

298:デフォルトの名無しさん
06/03/09 23:39:47
儲かるなら何人かけてもいいさ。おれは一人で何本もやらざるをえん

299:デフォルトの名無しさん
06/03/09 23:40:59
で時間がなくて環境が悪すぎとかうだうだいうんだよな

300:デフォルトの名無しさん
06/03/09 23:55:57
>>297
わかってないな。どれだけ大規模な開発だったかを。
今まで一人でやってうまくできたのだから、
このプロジェクトだって一人でできるという営業の妄信が
納期を遅らせ、悲劇に追い込んだ。
知らない事があまりにも多すぎて
徹夜残業や休日出勤する程度という程度の勢いだけで
行動するのは無謀だと言うことをあのプロジェクトは証明した。
何人も社員が辞めていったんだ。顧客企業は我が儘だし
態度がでかいしそれで皆不満に思っていた。
それでモティべーションが低下しますます納期は
遅れ、精神的にもおかしくなっていったわけだ。




301:デフォルトの名無しさん
06/03/09 23:57:25
>>297
全部一人でやろうとするから
オブジェクト指向による
拡張性、移植性、汎用性を高めようという意識が
かけてとんでもないデスマーチに陥るのだよ。
古くさい精神論だけじゃうまくいかないんだよ。



302:デフォルトの名無しさん
06/03/09 23:58:25
他の仕事じゃピンハネしすぎじゃないか、って思うこともしばしばあるが
携帯アプリは儲けが薄すぎて、本気で会社のほうが潰れないか心配になる。

303:デフォルトの名無しさん
06/03/10 00:02:56
プログラミング能力だけじゃなくて人脈もしっかりと気づいておけば
大概のことに対処できる。仕事がうまく行かないとか嘆いているの
はどこかで間違ったからだよん

304:デフォルトの名無しさん
06/03/10 00:06:59
>>300-301
精神論を否定してるわりには、顧客の態度がきにくわないから精神的にまいった、とか言い訳してるなw
そもそも、最初にきちっと営業の妄信を指摘し、それをやめさせなかったことが原因じゃないの?
あるはそれが出来ない会社の体質であることを見抜けずに、会社にいたことが失敗の原因でしょ。
それこそ精神論じゃなく、理詰めで必要なことをやってればいいだけのこと。あとからグチグチいうのはみっともないなw

305:デフォルトの名無しさん
06/03/10 00:11:13
プログラムがちょっとうまいからって仕事そのものがうまいと勘違いしてるんだろ

306:デフォルトの名無しさん
06/03/10 00:57:24
で、結局おまいらの中でデザパタを使える奴はどれだけいるんよ?

デザパタ程度も使えないレベルの奴が愚痴を言ったところで、見苦しい言い訳にしか聞こえん罠。
まあ、もしその辺が上手く使える奴が追いつめられたんなら、それはプロジェクトを見直す必要がありそうだけどな。

307:デフォルトの名無しさん
06/03/10 01:34:31
携帯アプリなんかそんなもん知らんでも楽勝だよママ

308:デフォルトの名無しさん
06/03/10 02:13:14
俺も知らない。本屋で立ち読みして「役に立たねえな」と思った。

309:デフォルトの名無しさん
06/03/10 02:21:40
>>304
なにもわかってないな。
偉そうな事を言っているお前に何がわかるんだと言いたい。
精神論自体は否定していない。
精神論ばかりを前に押しだそうとするから
あんなデスマーチに陥ったんだよ。
蟻が像にどう立ち向かえというのか? それを
顧客も営業もわかっていなかった。


310:デフォルトの名無しさん
06/03/10 02:21:55
>>304
顧客は態度が悪いだけでなく
約束も守らない、口先だけの人間ばかりだったんだよ。
顧客は納期前になって仕様変更を何度も
頻繁に要求して、どこかのバグを直す度に
どこかのバグがまた生まれる。その繰り返し。
顧客は「お客様は神様」なんだから約束を破って
当たり前という態度丸出し。
徹夜させても休日出勤させても残業代はゼロで簿給
で顧客の無謀な要求にすべて応えなければならない。
N社にはウンザリ。だれもが
最近上場したN社のことを嫌っていた。

311:デフォルトの名無しさん
06/03/10 02:23:14
>>304
それにその営業、典型的なワンマンなんだよ。
傲慢で人の話は聞かない。
しかも代表取締役。
だから誰も逆らえない。触らぬ神に祟りなし。
昔C言語をやっていたというからBREWのことくらいわかるかと
思ったら全然わかってなかった。
そんな奴があの嫌な不良顧客の仕事を引き受けた。
だから彼の暴走を誰も止めることができなかった。


312:デフォルトの名無しさん
06/03/10 02:25:38
>>304
それから
プロジェクトのチームで、
開発に直接関わった者の中には
デザインパターンを使いこなせる者どころか、
オブジェクト指向を使いこなせる人間は一人もいなかった。
クラスの代わりに構造体を使っているだけで
数百あるファイルに関数がいくつかあるだけだった。
ソースコードを見ると#defineで定義した変数が
何百も見つかった。

313:デフォルトの名無しさん
06/03/10 02:35:34
2ちゃんねるはたまにしか利用しないのであれなんですが
↑スレ違いじゃございませんか?

314:デフォルトの名無しさん
06/03/10 02:40:57
>>309-312
チラシの裏に書くか
あるいはせめて一レスで済ませてくれ

315:デフォルトの名無しさん
06/03/10 02:41:05
スレっていうかね、板違いね。
デスマの愚痴ならマ板行って。

316:デフォルトの名無しさん
06/03/10 02:45:36
>>294
いや別に、キャンセルしてもいいしすべきだと思うよ。

ソケット(pisMessage)から全部読んでも、IWebをリリースするまでは
Keep-Aliveなソケットは閉じられないはずだから(Keep-Aliveってなあそういうもんだ)
それはしょうがないんじゃないかな。
IDLETIMEOUTだかなんだか、30秒ぐらいでソケットは閉じられると思うからそれを待つか、
最後の通信だけKeep-Aliveやめるかすればいいんじゃね?

317:デフォルトの名無しさん
06/03/10 03:03:01
BREWも大変だな

318:294
06/03/10 03:52:55
>>316
なるほど…
WEBOPT_FLAGSにWEBREQUEST_NOKEEPALIVEを設定してみます。
なにぶん通信は専門じゃないもので…
大変たすかりました。
ありがとうございます。

319:デフォルトの名無しさん
06/03/10 05:25:59
最近上場したN社、ってどこだろう

320:デフォルトの名無しさん
06/03/10 08:31:22
Nじゃないだろハゲ

321:デフォルトの名無しさん
06/03/10 08:40:51
>>295
このスレだけ見ても情報が少なくてなんか「鮫島事件」みたいなんだよ。
誰も絶対内容を説明しようとしないしw

調べれば分かるってのと同時に、人によってデザインパターンとやらの認識が違うから
下手なこと言って叩かれるのが嫌なのかもしれないとは予想してる。

それはともかくBREW最近静かだな。
ウチのクライアントもメダルアプリとか速攻参入したがるのかと思ったら、
条件厳しすぎてクソゲー乱発の会社じゃ絶対通らねぇやw

322:デフォルトの名無しさん
06/03/10 09:00:17
まああれだ、プログラムしか出来ない奴が技術用語っぽいのを
振り回して悦に浸ってるだけ

おまえのプログラムが金に変わるのは、お前以外の人間が
作った仕組みや努力あってのことだっつーのだけは忘れるなよ

323:デフォルトの名無しさん
06/03/10 11:02:21
>>321
勝手に鮫島事件にしてデザインパターンも
理解しないでしまうとは
君も勿体ない男だね。

それより、
携帯電話ではJavaアプリなんかクラスを
何百も作っていられるほどの余裕はない
BREWではもっと沢山作れるが余裕がないことには
変わりはないだろ。
だからデザインパターンをBREWで実践したがらない
香具師が多いんじゃないかと思うんだが。


324:デフォルトの名無しさん
06/03/10 11:03:15
>>319
ヒントでわかった。

325:デフォルトの名無しさん
06/03/10 11:05:23
>>322
デザインパターンを知ってる奴がプログラムしか
できないわけないだろう。
作った仕組みの努力あってのことだっていうなら
お前にだってそれは言えるよ。
お前も努力もしてないくせに威張って今の自分がいるんだろ。

それが資本ってもんだ。
電気、ガス、水道の恩恵をお前は享受している。
その世界でお前は人を見下して悦に浸っているだけの愚か者なんだよ。


326:デフォルトの名無しさん
06/03/10 11:15:04
あぁ、デザインパターンか、でもアレ、あんな感じだからw

327:デフォルトの名無しさん
06/03/10 11:16:07
そういうお前もTemplate Methodパターンくらは使うだろ


328:デフォルトの名無しさん
06/03/10 11:16:30
もしくはHook Operator パターン


329:デフォルトの名無しさん
06/03/10 11:18:11
デザインパターンを知るようになるとプログラム以外の
UMLについても知るようになるし、
ソフトウェア工学についても必然的に知るようになり、
視野が広まっていく。
さらに哲学的思考能力も身に付くようになる。

まさに広がる世界

そして考える力が強まるに連れて人にこき使われるのが嫌になってくる。
そして独立精神が旺盛になるw


330:デフォルトの名無しさん
06/03/10 11:40:52
デザインパターンなんか関係なく独立してますが何か?

人の考えたものに影響されて独立心が高まるようじゃ、
そいつに端から意思など無い。道で勧誘されて宗教に
はまるのはそういうタイプだ。

331:デフォルトの名無しさん
06/03/10 11:52:17
>>330
おまいさんは自分の意志で行動しているみたいだが、
そう思っているのは自分だけかもしれないぜ。

332:デフォルトの名無しさん
06/03/10 12:21:58
結論:デザインパターンは知ってると便利だけと知らなくてもBREWで携帯用のアプリ組んでる分には困らないよ
   でも知ってるとカッコイイよ



↓次の質問ドゾ

333:デフォルトの名無しさん
06/03/10 12:34:06
デザインパターンって何ですか?(゚∀゚)

334:デフォルトの名無しさん
06/03/10 12:50:31
>>331
そのレスは突っ込み返しようが無いのでつまらない。

自分の考えを何も書かずに突っ込みどころだけ探してるなんざ、
屋上から地面に居る人間に石を投げてるのと同じ卑怯者と
変わらん

335:デフォルトの名無しさん
06/03/10 13:13:41
>>334
地面から銃で撃ち返すぐらいの気合いを見せてくれよ。
他人に影響されて意志が変化してはならないみたいなことを書いてるが、
ぶっちゃけ頭が固いってことだろ?
他人の意見を聞いて、良いと思えば意志を変化させるぐらいの柔軟性は持って欲しいと思う。

336:デフォルトの名無しさん
06/03/10 13:49:25
俺の行きつけのスレだけど皆も来いよ!Σd(・ω・´)

ぐち0x13 ~分かったから仕事させてくれ~
スレリンク(prog板)

337:デフォルトの名無しさん
06/03/10 14:11:59
なんかレスが珍しく多いと思ったら9割方スレ違いかい。

338:デフォルトの名無しさん
06/03/10 14:38:26
だってAUが締め出ししてんだもん。仕事になりゃしない。
大手以外要らないみたい

339:デフォルトの名無しさん
06/03/10 14:45:45
   _、_
 ( く_,` )     n   大手でなくても実績があれば結構ですっ!
 ̄    \   ( E) 
フ AU /ヽ ヽ_//


340:292
06/03/10 15:49:24
while( CALLBACK_IsQueued(&p->webCallBack) ) {
  CALLBACK_Cancel(&p->webCallBack);
}

の部分を

if( p->webCallBack.pfnCancel != NULL ) {
  CALLBACK_Cancel(&p->webCallBack);
}

に変更したらピクト点滅(Aというアイコン?)がおさまりました。
WEBOPT_FLAGSにWEBREQUEST_NOKEEPALIVEを設定するまでもなかった
ですね。

一応報告まで。
私のミスですね。

341:デフォルトの名無しさん
06/03/10 16:32:17
大手と実績がある奴以外要らないみたい。

342:デフォルトの名無しさん
06/03/10 16:38:55
>>340
それ、何も変わってないと思うんだけど???

343:デフォルトの名無しさん
06/03/10 16:44:16
CALLBACK_IsQueued(&p->webCallBack) の戻り値が当てにナンネってことじゃね?

344:デフォルトの名無しさん
06/03/10 17:01:38
#define CALLBACK_IsQueued(pcb) (0 != (pcb)->pfnCancel)

同じです...。0 != NULL だったら知らないけど。

345:デフォルトの名無しさん
06/03/10 17:04:13
いい加減Javaと同じ考え方すんのやめなよ
whileで待つんじゃなくてシステムへ戻して待つのが正解。


346:デフォルトの名無しさん
06/03/10 17:05:34
whileで待ってなんかいませんがな

CALLBACK_Cancel()するとpfnCancelはNULLになるからwhileのループはMAXで1回しか走らない。

347:デフォルトの名無しさん
06/03/10 17:20:14
私は if 文の判定に int を使う人のセンスを疑うわけだが貴公らの意見を聞こう

348:デフォルトの名無しさん
06/03/10 17:26:56
>>347
マ板でやろうよ

349:デフォルトの名無しさん
06/03/10 17:31:48
今日からマのつく奴隷業!

350:デフォルトの名無しさん
06/03/11 13:44:16
>>332
知ってると恰好良いってだけでやるもんじゃない、
開発効率を高めるためにやるものだ。

351:デフォルトの名無しさん
06/03/11 19:21:14
>>350
マジレス(`・ω・´)カッコイイ



いやま、350は一連の流れの皮肉なんだろうけどさ

352:デフォルトの名無しさん
06/03/11 20:01:46
自分だけが知ってる状況じゃあんまり意味が無いしな

353:デフォルトの名無しさん
06/03/11 20:23:50
>>339
その実績を作るためにデスマーチ&大赤字になったプロジェクトを知っている。
その後は元請け会社との関係を断ち切ったらしい。



354:デフォルトの名無しさん
06/03/11 20:25:15
>>353
関係者乙

355:デフォルトの名無しさん
06/03/11 20:26:29
>>352
どうかな。Template MethodやSingletonは非常に簡単なので
すぐに理解して貰えると思うが。Abstract FactoryやProxyは
説明するのがめんどいかもしれないけど。

Compositeパターンくらいは教えておいた方がいいだろう。
あのパターンを知った多くの者は感動する。

感動させて、デザインパターンを勉強するやる気を与えさせるのも一興。

356:デフォルトの名無しさん
06/03/11 21:14:51
>>355
教えて理解しようとしてくれる・覚えようとしてくれるような状況ならいいが
むしろ「積極的に」理解しようとしない石頭が多いからな

パターンの話を続けるつもりならマ板でやろうぜ
さすがにもうスレ違いだ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch