BREW(Binary Runtime ..
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つはトップビジブルのアプリです。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5404日前に更新/238 KB
担当:undef