BREW(Binary Runtime Environment for Wireless) 10at TECH
BREW(Binary Runtime Environment for Wireless) 10 - 暇つぶし2ch1:デフォルトの名無しさん
07/11/19 14:26:32
BREW(Binary Runtime Environment for Wireless)についてのスレ

■テンプレ
URLリンク(brew.s214.xrea.com)
URLリンク(kintubo.kakiko.com)

■前スレ
09 スレリンク(tech板)

■過去スレ
08 スレリンク(tech板)
07 スレリンク(tech板)
06 スレリンク(tech板)
05 スレリンク(tech板)
04 スレリンク(tech板)
03 スレリンク(tech板)
02 スレリンク(tech板)
01 スレリンク(tech板)

関連情報 >>2-10


2:デフォルトの名無しさん
07/11/19 14:27:11
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:デフォルトの名無しさん
07/11/19 14:28:30
SDKダウンロードについて
IE5.5SP2以降推奨、NNでも動くかも知れないけどOperaとかMozillaとかは確実に無理。
JavaScript+ActiveX。
あと、会社名とかをちゃんと登録しないとダウンロードできません。
2Channel Inc. みたいな正式な名前。登録内容は全部英語。

Q. gccでコンパイルしたいのですが
URLリンク(kintubo.kakiko.com)
A. こちらを参考にどうぞ.

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

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

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

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


4:デフォルトの名無しさん
07/11/19 23:57:09

      /\___/ヽ
     /       :::::::\
    .|          .::::|
    |  ''''''   ''''''   .:::|   ついに糞塚消滅まで4ヶ月となった…
    .|(●),   、(●)、::::|    でも統合先のあうは相当糞だというし…
     \ ,,ノ(、_, )ヽ、,,.:::::/
     /``ーニ=-'"一´\
   _/((┃))_____i |_ キュッキュッ
.. / /ヽ,,⌒) ̄ ̄ ̄ ̄ (,,ノ   \
/  /_________ヽ..  \
. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

       /\___/ヽ
     /''''''   '''''':::::::\
    . |(●),   、(●)、.:| +
    |   ,,ノ(、_, )ヽ、,, .::::|
  .   |   `-=ニ=- ' .:::::::| +
     \  `ニニ´  .:::::/     +
     /ヽ、ニ__ ーーノ゙\_
    .| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄.|  トン
   _(,,) あうヲタ氏ね!!(,,)_
.. /. |..            |  \
/   .|_________|   \


5:デフォルトの名無しさん
07/11/20 00:05:41
で、例外はどうなった?
ライブラリの初期化をしなきゃいけないかもってのはそうかもしれんな。

この辺読んで
URLリンク(www.arm.com)

特にこの辺か
"Exception Handling ABI for the ARM Architecture"
URLリンク(www.arm.com)


6:デフォルトの名無しさん
07/11/20 11:11:51
えいごよみたくなーいヽ(`Д´)ノ

7:デフォルトの名無しさん
07/11/20 12:57:48
例外を有効にした時のサイズ増加は、まぁ我慢できる範囲だったので、
あとは使う方法さえ見つかれば…ですね。
RVCT3.0のコンパイラ/ライブラリガイドにCライブラリを使用しないアプリ
の作成方法は書かれてるけど、C++になると複雑すぎて…

8:デフォルトの名無しさん
07/11/20 14:22:55
__cxa_allocate_exceptionと__cxa_free_exceptionを自分で実装してみたけど、駄目ぽ。
他の関数も実装しなきゃいけないのか、実装の仕方が間違ってるのか…

9:デフォルトの名無しさん
07/11/20 14:43:55
キター--(・∀・)---!!
例外動いたよ!

例外処理機構の中でメモリ確保するときに、標準だとmalloc/freeが呼ばれるのが
原因っぽかったので、上では__cxa~を再実装したんだが、それ以外でも呼ばれてる
らしく落ちてた。
そこで、malloc/freeを自分で実装してMALLOC/FREEに置き換えてみたら、あっさり
動きやがりました。

StackUnwindはきちんと行われてる模様。デストラクタについては未確認。
あとintをthrowしか試してないので、クラスをthrowした時にどうなるかも未確認。
でもBREWのエラー処理ならエラーコードさえ投げられれば問題ない気もする。

10:10
07/11/20 14:47:05
>>5氏の探してくれたドキュメントがヒントになりました。
有難うございます(*´ω`)

11:デフォルトの名無しさん
07/11/20 15:16:03

興奮し杉www

12:デフォルトの名無しさん
07/11/20 15:27:12
(´・ω・`)10じゃなくて9ですね、落ち着きます

13:デフォルトの名無しさん
07/11/20 15:36:07
例外ですが、デストラクタ(派生クラス含む)はちゃんと呼ばれてるようです。

見つかった問題点
 ・ヒープを消費する
  intをthrowすると(throw~catchまでの階層数によらず)32+124バイトのメモリをmallocしようとする。
 ・メモリリークが発生している
  上記のうち32バイトの方が、アプリを終了しても解放されない。
  124バイトの方は、恐らくcatchした時点で解放。

ヒープ消費については、起動時に余裕をもってメモリチェックするか、固定領域を返すように
実装すれば回避できるかもしれません。
メモリリークも、固定領域を使うようにすれば回避できますが…
正確に、どういうタイミングで、どういう計算方法によてメモリ要求サイズが決まるのか分かって
いないので、固定領域化するのはちょっと落ち着きません。

14:デフォルトの名無しさん
07/11/20 16:55:54
throw時の消費メモリは、
 32バイト(固定)、最初にthrowした時に1度だけ確保
 120 + sizeof(投げるオブジェクトのサイズ)、throwする度に確保
かな?
>>5のドキュメントに、投げられたオブジェクトを確保するような記述もあるし、
あとは型情報やら何やらで120バイト、なのだろうか。

15:デフォルトの名無しさん
07/11/21 00:16:24
例外投げられるようになるといろいろ( ゚Д゚)ウマー
>>9 とその周り乙!
うちにも RVCT3.0 が来たら試してみよう。

まあ、あと2年ぐらいは来そうにないが。

16:デフォルトの名無しさん
07/11/21 00:48:02
うちも・・・無理だろうなあ。


17:デフォルトの名無しさん
07/11/21 10:33:03
例外を使ってエラー処理が簡略化できるってことは、開発コストが下がるってことで…
ADS1.2を持ってるなら1年15万だから…頑張れば元取れるかも?w

18:デフォルトの名無しさん
07/11/21 11:05:20
しかし例外取れなくてもpostする仕組みが既に出来上がっている罠('A`)


19:デフォルトの名無しさん
07/11/21 11:39:58
気になってADS3.0でc++のソースコンパイルしてみたら
templateクラスが通らねぇorz

1.2ならテンプレのmakefileまま動いたのにーヽ(`Д´)ノ


20:デフォルトの名無しさん
07/11/21 11:53:44
>>18
問題があるとすると、そこですね(´・ω・`)
例外に対応させるとなると、今までの資産(自前ライブラリとか)の殆どを作り直すことに。

>>19
具体的にどんなコードが、どういうエラーになります?
うちでは特に問題ないのですが…(元々あまりテンプレート使ってないせいもありますが)。

21:19
07/11/21 13:36:29
追っかけてみたらこういうことらしい。

template < class T >
class test {
public: test(){}
};

↓↓↓RVCT3.0でコンパイルエラー
template < class T >
class test2 : public test<T> {
public: test2() : test(){}
};

↓↓↓RVCT3.0でコンパイルOK
template < class T >
class test2 : public test<T> {
public: test2() : test<T>(){}
};

VC、RVCT1.2はどちらもコンパイルOKなんで、気づかなかった。


22:19
07/11/21 14:24:00
更に…

template <class T>
class test {
public:
int m_t;
test() { m_t = 1; }
void func(){ m_t=2; }
};

template <class T>
class test2 : public test<T> {
test2(){
m_t = 1; // ←コンパイルエラー
this->m_t = 1; // ←通る
func(); // ←コンパイルエラー
this->func(); // ←通る
}
};

templateクラスだけこんな現象が。
まだまだありそう(´・ω・`)


23:デフォルトの名無しさん
07/11/21 14:31:38
>>21,22
(´・ω・`)テンプレート基底クラスの扱いが面倒なのね…

24:デフォルトの名無しさん
07/11/21 14:39:15
とりあえず、
--implicit_typename --no_parse_templates
を指定すれば、>>21,22のコードはコンパイルできそう。
どういう弊害が出るかは知りませんが(´-ω-`)

25:19
07/11/21 15:07:05
>>24
サンクス。
templateな引数持つ関数にconstな定数を与えるとエラーになったけど
それ以外は通った。
上のエラーは日向君の強引なキャストで乗り切った。
借りモンの携帯10台壊すつもりで実機テストしてみる。


26:デフォルトの名無しさん
07/11/21 17:16:09
なんかわからんが君かっこいいぞ

27:デフォルトの名無しさん
07/11/21 21:56:37
俺のほうがかっこいいよ

28:デフォルトの名無しさん
07/11/21 22:39:23
(e)

29:デフォルトの名無しさん
07/11/21 23:25:50
9 よくやった!!
焼肉ごちそうしてやる。


30:デフォルトの名無しさん
07/11/22 08:38:43
>>25
> 借りモンの携帯10台壊すつもりで実機テストしてみる。
10台壊したらクラッシャー19ってコテ名乗ってもいいんだからねっ!

31:デフォルトの名無しさん
07/11/22 09:57:58
例外発生時の32バイトメモリリークですが、catchブロックを抜けた後に新たな例外が
発生しないことが保障されていれば、解放しても大丈夫なようです。

static void *exceptionMemory = NULL;
void *malloc(size_t size)
{
  void *p = MALLOC(size);
  if (exceptionMemory == NULL) exceptionMemory = p;
  return p;
}
// freeは略

EVT_APP_STOP:
  if (exceptionMemory != NULL) FREE(exceptionMemory);
  break;

といった方法でメモリリーク解消&正常動作可能でした。
exceptionMemoryを解放した後にthrowしてしまうと、多分落ちます。

あとは、120+αバイトとはいえthrowするたびに確保されるメモリがヒープの断片化に
どの程度の影響を与えるか…

32:デフォルトの名無しさん
07/11/25 09:38:23
とにかく、
ドコモ以外は糞だと(ry

33:デフォルトの名無しさん
07/11/25 16:41:33
糞であろうとなかろうと実際に仕事はあるんだよ
そしてそれに追われる奴もいるんだよ
それが現実なんだよ

Googleのプラットフォームも気になるな
あれどうなるんだ

34:デフォルトの名無しさん
07/11/25 17:11:59
そんなの関係ねえ!

35:デフォルトの名無しさん
07/11/27 11:19:21
DoJaも大概に糞だけど、まぁそれは置いといて…

例外使えるようになると、今度は例外安全に気を使うようになる上、
下手なプログラマが書くと逆に深刻なバグを仕込みかねない諸刃の剣だな。

36:デフォルトの名無しさん
07/11/27 11:48:15
例外は既存のソフトウェアを変更なしで組み込めるって所がうれしいんじゃないかな。

37:デフォルトの名無しさん
07/11/27 20:51:41
携帯の中の人達も大変なんだろうなあ…('A`)ハァ

38:デフォルトの名無しさん
07/11/27 21:25:33
>>37
うちらは携帯の中と外の間、くらいじゃないかなw
本当の意味での中の人(ファームウェアとか作ってる人)はもっと大変らしい。

39:デフォルトの名無しさん
07/11/27 21:39:14
中と外の板挟みで苦しんでる中間管理職です

40:デフォルトの名無しさん
07/11/29 21:44:13
良いことを思いついた
お前、俺の尻で事前検証試験しろ









という夢を見ました
もうだめかもしれんねorz

41:デフォルトの名無しさん
07/11/29 22:08:53
>>40
精神科紹介仕様化?

42:デフォルトの名無しさん
07/11/29 22:57:35
>>41
おまいさんも病んでるなw

43:デフォルトの名無しさん
07/11/29 23:17:26
>>40
探偵ナイトスクープで、携帯電話のアンテナを尻の穴に入れると
電波が遮断されるとあったけどそれで事前検証する気か?w

44:デフォルトの名無しさん
07/12/04 01:53:11
BREWで使えるXMLパーサってありますか?

45:デフォルトの名無しさん
07/12/04 04:37:20
1.Boost.Spirit のようなパーサを使って XML の EBNF を読みながらパーサを自作
2.正規表現検索が出来るクラスをどっか(Boost とか ATL とか)から持ってきて正規表現でパース
3.全部独自でパース
4.そもそも XML 使わない
5.そもそも BREW やらない
6.五寸釘を打ち付ける

46:デフォルトの名無しさん
07/12/04 04:42:38
Xerces はさすがに規模がでかすぎるか?
必要な部分だけ抜き出せるといいんだが……。

47:デフォルトの名無しさん
07/12/04 08:05:29
XMLのどの部分まで必要なのかにもよるけどなぁ。

48:デフォルトの名無しさん
07/12/04 11:10:31
ソフィアクレイドルのパーサ使ってる人はいないかな?

49:デフォルトの名無しさん
07/12/05 14:00:23
本日のトリビア。

W41SH/W51SH は サブスクライバIDの取得で第三引数に40より小さい値を入れると
たとえサブスクライバIDが指定サイズ内に収まったとしても
戻り値がSUCCESSで値は空文字列になる。

char sid[40] = {0}; // 39文字で普通収まるんだが
int len=sizeof(sid)-1; // 39文字を指定して

if( ISHELL_GetDeviceInfoEx( pMe->a.m_pIShell, KDDI_SUBSCRIBER_ID, (void**)&sid, &len ) != SUCCESS ) {
// ココには来ないが
}
if( STRLEN( sid ) == 0 ) {
// ココに来る
}


50:デフォルトの名無しさん
07/12/05 14:27:06
>49
トリビアでも何でもない。やり方と戻り値の意味を間違えてる。

ISHELL_GetDeviceInfoEx()の戻り値は項目の値をサポートしてるかどうかによる。
KDDI_SUBSCRIBER_IDはサポートしている項目名(定義済みの値)なのでSUCCESSが返る。

その項目名が示す具体的な値を取得するには、char[]型の場合、
まず第3引数にNULLをセットして、格納するのに必要なサイズを第4引数で受け取る。
その上で再度ISHELL_GetDeviceInfoEx()によって目的の値を取得する。

「39文字で普通収まるんだが」というやり方をするなとガイドに書いてある。
実機側が指定する正確なサイズでないと値が取得できないという機種が依存情報にも出てる。

51:デフォルトの名無しさん
07/12/05 21:52:12
>>49
>>50
 とりあえずここでするにはかなりぎりぎりな内容なわけだが。
 49はくだらない間違いをしていることと、ここにそのねたを書いていることと、
 二重でだめだめではないかと。

52:デフォルトの名無しさん
07/12/06 00:17:18
トリビアって久しぶりに聞いた

53:デフォルトの名無しさん
07/12/06 00:22:21
トリビアなら先週特番でやったよ。
バズーカ対防弾ガラスとか面白かった。


54:19
07/12/06 13:29:10
さすがゴッグ(E03CA)だ。なんともないぜ!!

今更ながらウチでも例外動作確認。
元々makefileが1.2のVSAddin生成物の流用だったのが問題で
従来のc++のアプリが動かなくなったんで、
ここと同等になるようmakefile大改修。
URLリンク(brewforums.qualcomm.com)

加えて、コンパイルオプションに--exceptions --rw_base 0x208000 追加、
malloc/free/mainの3つを再定義で動いた。
#--rw_base 0x208000 はクラス配列を扱う場合にもあった方が無難

ちなみに>21に関してはコンパイルエラーが正しいらしいので直した。
>22はやっぱりヘンなので --implicit_typename --no_parse_templates を適用。
無事動作した。


55:ntroot
07/12/06 17:54:59
>>54
乙~
例外、そちらでも使えたんですね。
これでQのフォーラムあわせて実動報告3件、かな?

makefileに関しては、RVCT3.0の場合PATHを設定してくれるから、
ARMCCとかフルパスで記述しなくてもarmccだけで動いたりw

rw_base=のアドレスは、とりあえずro_baseと被りそうにないアドレスを
適当に選んでますが、ro_baseとの差が2MB分なので今後アプリサイズの
上限が上がってきたりすると、ぶつかるかもしれません。

56:ntroot
07/12/06 20:10:53
RVCT3.0の最適化がよく分からん…
リンカに--feedback指定して未使用関数チェックすると、ちゃんとマークされてる関数(a)が
mapファイル見ると残ってる罠。当然、その関数しか呼び出してない関数(b)まで芋づる式に
リンクされてる。
しかしIIMAGE_Notifyを外すと、関数(a)がリンクされなくなり、それに伴って関数(b)も消える。
(´・ω・`)どーなってんの

57:デフォルトの名無しさん
07/12/06 21:50:10
>>56
つまり、糞

58:デフォルトの名無しさん
07/12/09 00:48:50
もはやBREW上でJava動かせるやつ買ったほうが早くね?
既存のやつは勝手アプリ用だから商用アプリで使わせてくれないけど、某社が売ってるJavaVMなら問題ないでしょ
例外とかも全部できるし

59:デフォルトの名無しさん
07/12/09 01:22:30
Brewレベルでしかいじれないハード絡みを除けばそうかもしれない

60:デフォルトの名無しさん
07/12/09 03:47:36
何本かこなして、フレームワークなり何なり整ってりゃ
大して開発期間かわらんと思うんだが。

そりゃ、やる前は時間かかるとは思ってたが。
いざやってみりゃ大して変わらない。

61:デフォルトの名無しさん
07/12/09 09:57:46
java変換だとtcpも使えないしな
まぁアプリによっては変換したほうが楽ではある。

62:デフォルトの名無しさん
07/12/10 00:35:41
>>61
某社のJavaVMにはTCP用のクラスも用意されてるわけだが

63:デフォルトの名無しさん
07/12/10 22:50:10
すべてのにあればな

64:デフォルトの名無しさん
07/12/12 16:26:57
まだ勉強し始めなので初歩的な質問で申し訳ありませんが、
ITRANSFORM_TransformBltComplex
を使ってクリッピング描画をしたい時は、
引数の転送元の幅や高さを計算して
描画するしか方法がないんでしょうか?

例えば、とあるグラフィック素材をITRANSFORMを使って
拡縮回転描画する時に、決められた短径領域範囲内のみ
描画領域とし、それ以外は描画したくない時に、
どのようにすれば良いのかが分かりかねています。


65:デフォルトの名無しさん
07/12/12 17:19:45
>64
変形は変形、描画は描画
ITRANSFORM_TransformBltComplex()は変形操作のための関数
描画のクリッピング指定はIDISPLAY_SetClipRect()で

ていう質問でいいんだよな

66:64
07/12/12 18:20:44
ITRANSFORM_TransformBltComplexで変形した素材を
IDISPLAY_SetClipRectを用いてクリップ出来るようにするには
どのような手順で描画すれば良いのかと言う事なんですが、例えば
URLリンク(plusd.itmedia.co.jp)
のような描画をしたとして、IDISPLAY_SetClipRectを使えるようにするには
どのような手順が必要なんでしょうか?


67:デフォルトの名無しさん
07/12/12 19:34:14
俺も質問の意味がよく分からないんだけど
クリップ領域を変形したいって意味か?
例えば、斜めの長方形領域をクリップしたいとか。

マスク画像用意するくらいしか思いつかないけど他にも方法あるのかな。


68:デフォルトの名無しさん
07/12/12 20:10:18
ITransform使ったことないから分からんけど
IBITMAP_QueryInterfaceの第一引数に
デバイスビットマップ以外のIBitmap*を指定して
そのIBitmap*をIDISPLAY_BitBltとかで描画してやれば
とりあえず普通のクリッピングはできるんでね?

69:デフォルトの名無しさん
07/12/12 20:14:48
>66
どのような手順も何も…変形して、クリッピング指定して、描く、だけ

例えば、長方形の画像を平行四辺形に変形して、
その画像内の一部分である正方形領域を画面に出したいとすると…
1.まず長方形の画像をITRANSFORM_TransformBltComplex()で平行四辺形に変形する
2.IDISPLAY_SetClipRect()で目的の描画位置に正方形領域を指定する
3.1で変形した画像(平行四辺形)を画面に描画する
4.画像は平行四辺形ではなく、正方形領域で切り取ったかのように描画される

画像の変形のさせ方は>66のリンク先の例を見ればわかるね
IDISPLAY_SetClipRect()の使い方はAPIリファレンスに書いてある
画像の描画自体はIDISPLAY_BitBlt()とIDISPLAY_Update()だよね
じゃぁできたじゃん

70:66
07/12/12 21:26:09
>>67
クリップ領域を変形させたいのではなく、
変形させた画像を短径クリップ領域内だけに描画させたいと言うことです。

>>68
なるほど、第一引数に デバイスビットマップ以外のIBitmap*を
指定できれば、IDISPLAY_BitBltでクリップが使用できますね。

>>69
それぞれ単体での使用方法は分かるのですが、具体的に
組み合わせる時にどのように組み合わせるかが分からないのです。
ITRANSFORM_TransformBltComplex変形とありますが、
指定したリンク先のサンプルではITRANSFORM_TransformBltComplexの時点で
指定したデバイスビットマップへ転送(描画)してしまうと思いますが、
この転送先を>>68でおっしゃってるように、IBitmapへ変えて
変形後の転送先で指定したIBitmapを
IDISPLAY_BitBltで描画すると言うことでしょうか?


71:66
07/12/13 09:57:06
>>68さんのヒントからひとまず実装する事が出来ました。
ただクリップする為だけにビットマップを用意し
そこへ変形描画をしてから、さらに変形描画された
ビットマップを描画すると言うステップを考えると、
何か他の手を考えた方が良い気もしました。
いずれにしましても、皆さまありがとうございました。


72:デフォルトの名無しさん
07/12/13 20:14:38
どのBREWアプリも終了ダイアログ同じなんだけど、なんかAPIでも
あるんですか?

73:デフォルトの名無しさん
07/12/13 22:32:54
>>72
CPならドキュメントしっかりよめ。書いてある。
(正確にはなんだったかのreturn値だったか引数だったか...

74:デフォルトの名無しさん
07/12/13 23:26:29
全然読んでねえじゃんw

75:デフォルトの名無しさん
07/12/14 12:28:46
>>72
良いことを思い付いた
お前、俺のケツで事前検証試験しろ

76:デフォルトの名無しさん
07/12/14 14:45:53
まさかこれのこといってる?
(1)ISHELL_CreateDialog()関数をコールしてダイアログを作成します。
(2)YourApp_HandleEvent()関数で、次のイベントを処理するか、またはイベントに対してTRUE を返しま
す。
case EVT_DIALOG_START:
return TRUE;
case EVT_DIALOG_INIT:
return TRUE;
case EVT_DIALOG_END:
return TRUE;
ダイアログの作り方じゃなくて、端末に入ってるアプリの
終了画面が同じだからなにあるののかきいてるんだけど^^;

77:デフォルトの名無しさん
07/12/14 14:59:37
だからドキュメント読めと

78:デフォルトの名無しさん
07/12/14 15:53:07
見てるのですが見つかりません。。
どの辺のこといってますでしょうか?
教えてください><

79:デフォルトの名無しさん
07/12/14 16:03:18
ドキュメントの中身はKDDI CONFIDENTIALなので、ここには書けん。
18ページ付近。

80:デフォルトの名無しさん
07/12/14 16:27:24
まじか・・・
みつからん。。
ページ数が違うのか俺の見てるところが違うのか。。
内容いわなくていいからなんのドキュメントみてます?><

81:デフォルトの名無しさん
07/12/14 16:47:38
プログラミングかサービスじゃね?常考

82:デフォルトの名無しさん
07/12/14 17:05:47
プログラミングばっかみてました^^;
サービスにありましたw
ありがとうございます^^

83:デフォルトの名無しさん
07/12/14 19:31:33
>^^;
>w
>^^;


貴君はもう少し落ち着いた方が良かろう

84:デフォルトの名無しさん
07/12/17 11:28:55
某端末だけIFONT_DrawText()で直接ビットマップに描画できない(;´Д`)

85:デフォルトの名無しさん
07/12/17 11:33:43
そんな糞は捨てちまえよ!!
と言いたいが、処理に差し支えなければ、透明PNGでIImage_Draw()を
IFONT_DrawText()の後に実行してみてくれ
もしかしたら、その現象の場合も回避できるかもしれん

86:デフォルトの名無しさん
07/12/17 11:51:54
つまりInvalidateすればいいんじゃね

87:デフォルトの名無しさん
07/12/17 11:56:13
みなさまはSMSからアプリ起動方法のテストはどのようにやってますでしょうか?
エミュレータじゃなくて実機でのやり方わかるひといませんか?><

88:84
07/12/17 13:23:28
>>86
(´・ω・`)IBITMAP_Invalidate()じゃ駄目でした。
>>85
移植なこともあり新規リソースを持たせるのは難しいので、
透明PNGの描画は無理そうです

諦めてIDISPLAY_SetFont() -> IDISPLAY_DrawText()します・・・

89:デフォルトの名無しさん
07/12/17 15:36:55
>87
SMS送信用のアプリ作って別端末から送ってる

90:87
07/12/17 17:39:24
>89
やっぱりそのやりかたしかないんですね・・・・
もうちょっと楽なやりかたなんてないですよね?^^;


91:デフォルトの名無しさん
07/12/17 18:52:07
>>88
DDBに描画してる?

92:84
07/12/17 20:19:11
>>91
DDBですね。
IDISPLAY_GetDeviceBitmap()に対してIBITMAP_CreateCompatibleBitmap()で生成したものです。
Javaからの移植で、オフスクリーンに描画ってやりたかったんですが…
(´・ω・`)既にIDISPLAY_SetFont()/IDISPLAY_DrawText()に書き換えてしまいました。

93:デフォルトの名無しさん
07/12/18 12:08:49
前Javaやって、今BREWの開発をやっているけど、なんだか面倒くさいねぇ。
面倒くさいのは分かっていたことなんで単なる愚痴です。

とりあえずgnudeでコンパイルして実機動作を確認しました。
gnudeでコンパイルする時、漢字の2byte目が\はエラーや文字化けするけど、
batで実機用のフォルダにソースをコピーし、\を\\に置換するプログラムでソースを書き換え、
makeする。って一般的な手法ではないんかな?

リソースを使うのが妥当なんだろけど、
JAVAからの移植なんでソースの修正を最小限に抑えたかったんで、そうしたです。

検証を通すプログラムにするにはまだまだ先は長い・・

94:ntroot
07/12/18 13:22:31
色々面倒ですよ。
Sigの期限切れやEVT_APP_STARTでFALSEを返した時以外は
端末は何のエラー画面も持ってないから、アプリで実装しなきゃ
ならないとか。
例外に関してはRVCT3.0で使えるようになったので、エラー処理
そのものはかなり楽になりましたけどね。

一時期gnudeも色々議論されてましたが、結局みんなADS1.2や
RVCT3.0に移ったのかな?最近はあまりgnude関連の話題は出
ませんねぇ。

95:93
07/12/18 14:43:25
最初はEVT_APP_STARTでメモリー確保や画像/音の読み込みをやれば
良いかと思ったのだけど、リソースからの画像読み込みに結構時間がかかるんだね。
結局、ヒープの空きチェックで不足の時だけfalseを返すようにしたです。

その後はTimerで画像を数個単位に分割して読み込んでいるんだけど、
何個に分割するかはどうやって計算するのかなぁ。やはり時間計って1秒
超えそうなら終了する処理を組み込むべきだろか。
timer間隔を最短にし1個ずつ読み込むのもアリだろけど何となく嫌なんだよね。

最大の難関はレジュームだなぁ。まだ未実装でどうするか検討中だけども、
どこまで解放すべきなのかが考えどころ。
使用ヒープ(約1.3M)のほとんどを画像が占めているけど、
画像を解放してしまうと再開する時に数秒かかってしまうし。

あとはbrew2.1に対応するかかな。brew APIの互換性はありそうだから
アプリ1本でいけると思ってたけど、拡張モジュールに互換性がないとは・・。
しかも各SDKでコンパイルし直さないといけないとは・・。

実機テストのしづらも辛いところだなぁ。他社のようにSIMカード差し替えで
サクッとテストできればいいのだけどね。

いやぁ愚痴った愚痴った。仕事しよう

96:ntroot
07/12/18 15:15:54
本来PNG(gzip)の展開は重いものです。
Javaの場合、マルチスレッドなのでそれが気にならなかっただけ
じゃないでしょうか。

ISHELL_Resume()で登録したコールバックの優先度が低かった
はずなので、そっち使えばCPUが空いてる時(というよりAEEが
暇な時?)に呼んでくれると思います。

サスペンドは、うちではKDDIから解放必須に指定されているものを
除いては解放してないです。再読み込みに時間かかるし、最近の
端末は搭載メモリも豊富なので多少リソース握ったままでも支障
なく動いたりしますし。
Brew3.1の場合他アプリが大量のメモリを要求した場合、サスペンド
状態のアプリは勝手に終了させられたりもするので、あんまり難しく
考えなくても大丈夫じゃないでしょうか。

Brew2.1は、対応にかけるコストに見合わない気が…
IMEDIA_Release()の挙動とか、3.1と挙動の違う部分が結構あったり。

97:ntroot
07/12/18 18:41:29
例外を使うためにmain()を再定義すると、その分実行ファイルサイズが
増えますが、リンカオプションとして--startup AEEMod_Loadを指定する
ことでmain()がリンク時に削除されるようになる模様。
約800byteの節約(`・ω・´)

98:デフォルトの名無しさん
07/12/18 20:44:11
>>93
> batで実機用のフォルダにソースをコピーし、\を\\に置換するプログラムでソースを書き換え、
> makeする。って一般的な手法ではないんかな?
10年くらい前のCの解説書では常識だった。

99:デフォルトの名無しさん
07/12/18 21:18:41
どうせ発生する箇所はわかってるんで、どうしてもそういった文字入れたければ
AEE_SIMULATORの定義でプリプロセッサわけしてる。
画面に表示するようなやつは、あらかじめAECHAR変換しておくけど。

100:デフォルトの名無しさん
07/12/18 21:32:38
>>96
 なるほど、画像などは解放してないんですね。
それでいこう! 2.1は切ろう・・かなぁ


101:デフォルトの名無しさん
07/12/18 22:41:27
2.1はサウンドよりは画面デザインかなぁ。
フォントサイズがでかいから面倒くせぇ。


102:ntroot
07/12/18 23:00:48
>>101
ソレダ。何か忘れてると思ったら、2.1の時はフォントサイズが機種によって
微妙に違うんだった。同じスモールフォント(ClassID)指定しても、違うサイズ。
結局一番大きいフォントに合わせてレイアウトして、他端末では行間スカスカ
って実装に落ち着いたり。

103:デフォルトの名無しさん
07/12/19 11:10:14
>>101
フォントサイズが違うのは痛いなぁ。
12ドットに決め打ちして作ってるデザインがあるし。
13ドットまでなら何とかなるけど、14以上だと作り直しかな。
2.1を切る理由にしよう

104:デフォルトの名無しさん
07/12/19 11:45:21
誰か3Dサウンドアプリ経験者おりませぬか?

105:デフォルトの名無しさん
07/12/19 19:03:12
>>93
リソース使う、ってのは?

106:デフォルトの名無しさん
07/12/19 22:32:06
Javaはコード中に文字列直接記述、BREWは本来barファイル使うべきだけど
移植コストを抑えるためにハードコードのままいきたい、って話じゃないの?

107:デフォルトの名無しさん
07/12/19 23:35:29
文字列をハードコードしたら、むしろ移植コスト増えるんじゃないの?
少ないのは最初に作るときだけでしょ
文章チェックを他にまわすことも難しくなるし、別言語にもソースいじる必要あるし

108:デフォルトの名無しさん
07/12/20 00:57:51
木曜日になった。
今日、はじめて作ったBREWアプリがリリースされるんだ。
名前も知らないここの諸先輩方、色々とアドバイスありがとう。
感謝してる。


109:デフォルトの名無しさん
07/12/20 10:11:40
>>107
BREW SDK Toolsが3.0系になってから、リソースエディタが相当使い
にくく改悪されてるから、大量の文字列を登録するのは大変。
CtoCの移植性は低くなるかもしれんが、JtoCならリテラルのまま
埋め込んだ方が楽(作業量が少ない)だと思う。
文章チェックは、元々Javaでチェック済みなんだから後は文字化けして
ないか程度のコストで、アプリデバッグのついででも十分でしょ。

実際はbrxを直接編集してさくっと登録できるんだけどさw

110:デフォルトの名無しさん
07/12/20 23:29:39
テキストファイルをころがしときゃいいですよ。barとかゴミですよ。

111:デフォルトの名無しさん
07/12/20 23:32:14
まあ、変にキャッシュされるから開発中は扱いづらいのは確かだねえ。

112:デフォルトの名無しさん
07/12/21 13:12:57
キャッシュされる分、速度的には有利なのかもしれんが…
 ・barファイルはヘッダ等で冗長
 ・データ加工が必要な場合、一旦メモリに読み込む必要がある
   例)IFileなら、そのままIUnzipAStreamにSetStream()できる
って問題から、自前ファイルの方が色々便利だぁね。

ところで国内端末じゃILoggerのAEECLSID_LOGGER_FILE以外動かないっぽい?

113:デフォルトの名無しさん
07/12/21 19:52:41
あっちにも書いたのですが、

OpenGL ES で WQVGA(240x400)の描画が問題なく動作している人いますか?
W53Sで、292 <= y <= 400 の領域にデプスバッファが無いような症状で困っているのですが。


114:デフォルトの名無しさん
07/12/24 02:30:33
なんか久々に書き込み。
っていうか、BREWを久々にいじってます。

RVCT 3.0 でコンパイルしなおせとかいう指令が出まして、
一生懸命いじってるんだけど、

gnude では、\x5c 問題があって、

#ifdef WIN32
str = "表示";
#else
str = "表\示";
#endif

なんてことやってたんだけど、
RVCT は \x5c 問題に対応しているらしく、
ワーニングを吐くわけですよ。

で、RVCT のときは変なエスケープをしないよう
#ifdef をうまく使いたいんだけど、
なにかよい方法はありませんか?

うお、今日ってもしかして休日じゃねぇ?

115:デフォルトの名無しさん
07/12/24 04:05:26
24日ですよ。
聖なる日ですよ。


116:デフォルトの名無しさん
07/12/24 06:11:39
でもそんなの関係ねぇ!そんなの関係ねぇ!
  ○∧〃
  / >
  < \

117:デフォルトの名無しさん
07/12/24 12:31:00
便乗質問
GNUARMでは〉114の文字コード対策はされてますか?

118:デフォルトの名無しさん
07/12/24 16:03:14
>>117
少なくともうちで使ってる 4.1.1 ではされてない。
gnude も、 GNUARM も、\x5c は手書きで対応しないと文字化けする。

119:114
07/12/24 19:22:28
良い資料見つけた。

URLリンク(predef.sourceforge.net)

これで、いけるっぽい。

#ifdef __GNUC__
str = "表\示";
#else
str = "表示";
#endif


120:デフォルトの名無しさん
07/12/24 19:59:11
>>114
今日は月曜日だぜ
平日に決まってんだろ

121:デフォルトの名無しさん
07/12/24 22:44:03
>118
ありがとう
導入を検討してるんで気をつけます

122:デフォルトの名無しさん
07/12/25 00:23:44
これから会社で明石家サンタ見るんだ

123:デフォルトの名無しさん
07/12/25 01:07:51
全Brewプログラマが泣いた

124:デフォルトの名無しさん
07/12/27 09:03:30
質問です。3.1ではブラウザが起動するのですが、2.1だと起動しません。。
ezurito ez2urito以外に気をつけることってあるんですか?大至急でおしえてください><

125:デフォルトの名無しさん
07/12/27 09:40:36
>>124
ez2uritoはBREW3.1オンリーだよ。
ezuritoで動作しないならなんか不具合。
できればもっとkwsk

126:124
07/12/27 09:48:32
ezuritoでやってます。機種はA5518SAなんですがなにか特殊なんでしょうか?><
3.1の機種はez2uritoでそのままいけたんですけど。A5518SAはうんともすんとも。。
2.1って不具合多いんですか?それともこの機種がたまたま??
特にこれだけは気をつけないといけない2.1と3.1の違いってあります?
教えていただけると助かります。

127:124
07/12/27 10:25:44
すいません、追加で端末がマナーモード時にIMedia、ISound のインスタンスが
生成された際、出力先デバイスがデフォルトでヘッドホンに設定されてるんで
すよね?でISOUND_SetDevice()を使ってスピーカに変えると音は鳴るのは
3.1ではできたけど、2.1はどうすればいいんですか?どこかに2.1はなにも
しなくてもアプリの音はデフォルトで鳴るようなことが書いてあったけど、
鳴りません。解る方いましたら教えていただけませんか?これも急ぎです。。。

128:デフォルトの名無しさん
07/12/27 10:49:22
>>124,126
ezurltoに対して、ez2~と同じようにURI直接渡してたりしないか?
あと渡すアドレスの指す先がスタック上にあるとか。

129:124
07/12/27 11:32:21
>>128
>あと渡すアドレスの指す先がスタック上にあるとか。
それはないです
ez2uritoとezurltoかえるだけで3.1と同じようにやってたけど、
違うのね>< 2.1のやり方ってどうするんですか?

130:デフォルトの名無しさん
07/12/27 11:37:57
>>127
BREW2.1機では仕様でマナーモード中にスピーカ出力はできない。

>>129
つか基本的な知識が足りなさ過ぎる。まずもっと勉強した方がよい。
あせるな。というかBREW2.1はまずおいておけ。


131:デフォルトの名無しさん
07/12/27 11:38:42
つーかコード晒せ

132:124
07/12/27 12:07:33
>>130
そうなんですか。。BREW2.1機では仕様でマナーモード中にスピーカ出力は
みんなどうやてるんだろ。
ブラウザ周りはもうちょっと自分で見て見ます
みなさん色々ありがとうございましたー



133:デフォルトの名無しさん
07/12/27 12:20:10
>>132
>そうなんですか。。BREW2.1機では仕様でマナーモード中にスピーカ出力は

不可能といっているでしょ?

134:デフォルトの名無しさん
07/12/27 12:28:04
このBREWスレをまとめたWikiサイトがあったような気がしてたんだけど
どっかに行ったのかな・・・?
圧縮ソフトも置いてあったので便利だったのだけど。

135:デフォルトの名無しさん
07/12/27 12:49:17
Wikiって>>1に載ってるやつのことじゃなくて?

>>132
日本語でおk
ezurltoの細かい使い方とか、ここじゃ晒せない(ガイドライン関連は機密扱い)
ので、自分でドキュメント読んでおくれ。

136:124
07/12/27 13:13:34
>>133
一度解除してやってるってことでしょうか?
BREW(Binary Runtime Environment for Wireless) 7 の30と
ちょっと話は違うけどそれすら不可能?防犯などで鳴らしたいときは
2.1だとマナーモードにしてたら回避手段なし?
30は3.1の話だけど・・・
>>135
ちょうど読んでました、ありがとうねぇ~

137:デフォルトの名無しさん
07/12/31 16:51:33
阪大外国語学部の椿原慎二くんは昔からゴム付けてくれませんよ。
なんか顔もゴリラなんだけど、あのときはまさに野獣になって、日本語もさえも通じなくなる。
まがりにも外国語学部イタリア専攻で行ってるんだけど、あれじゃ外国語とか言うよりもゴリラ語。
きっとボブサップもあんな感じなんだろうな。ただ椿原慎二のチンコはサップに比べると小さいし臭いけどね。



138:デフォルトの名無しさん
08/01/08 14:29:40
IGRAPHICS_DrawPolylineを使って多角形を描きたいんですけど、
AEEPolyline構造体の中身にある、頂点の配列の書き方がよく分かりません。

AEEPolyline polyline;
polyline.len = 2;
polyline.points[0].x = 0;
polyline.points[0].y = 320;
polyline.points[1].x = 240;
polyline.points[1].y = 0;

と書いたところ、ビルドエラーは出ないのですが
「値が割り当てられていないローカルな変数polylineに対して参照が~」
というwarningが出てしまいます。
やはり頂点の配列の書き方がおかしいのでしょうか?

139:デフォルトの名無しさん
08/01/08 14:39:16
APIリファレンスに、AEEPolyline::pointsはAEEPoint*型って書いてあるだろ。
そのコードじゃ、誰がpointsの指す先を確保してるんだ?

AEEPoint pt[] = { { 0, 320, } , { 240, 0, }, };
AEEPolyline polyline = { 2, pt, };

なら通るんじゃないのか?
もしくは

AEEPolyline polyline = { 2, (AEEPoint *)MALLOC(sizeof(AEEPoint) * 2), };
polyline.points[0] = 0;
(以下省略)

140:デフォルトの名無しさん
08/01/08 17:40:36
岩手県奥州市の黒石(こくせき)寺で繰り広げられる伝統行事、蘇民祭(そみんさい)の観光ポスターを
市が駅構内に掲示しようとしたところ、JR東日本から待ったがかかった。
「男性の裸に不快感を覚える客が多い」というのが理由だ。数十年作製しているポスターの掲示拒否は初めてで、
市は枚数を200枚減らして1400枚とし、駅で張れない分は市内や首都圏で張るという。
祭りは、市内水沢区黒石の寺で裸の男衆が蘇民袋の争奪戦を繰り広げる。
疫病よけや五穀豊穣(ほうじょう)などを願い1000年以上続くとされる。
今年は2月13日夜~14日未明を予定している。
ポスターは写真3枚を組み合わせ、ひげ面で胸毛の男性(椿原慎二)が
アップに、奥に下帯姿の男性たちを配している。

昨年11月30日に市がJR東日本盛岡支社に許可を求めた。
JR側は本社の判断を仰ぎ、12月3日に図柄を変えない限り掲示できないと通知した。
市は下帯など一部修正をしたものの、版下がほぼ完成しJRが求める図柄の全面変更は困難だった。

141:デフォルトの名無しさん
08/01/09 11:36:01
おまえらあけおめ。
今年最初に出社して言いたいのはだな、、ver4やってるやつ乙
またしばらくここでは炎上しそうだな

142:デフォルトの名無しさん
08/01/09 12:11:45
そうか・・・ココはこれから炎上するんだな。

143:デフォルトの名無しさん
08/01/09 16:43:56
>>141
どうして?
3.1→4.0って、基本リコンパイルなんじゃないの?

144:デフォルトの名無しさん
08/01/09 17:57:19
なんでそんな限定的な話だけで考えてんの?

145:デフォルトの名無しさん
08/01/09 20:03:56
アプリのことより、もっと根本的なことで炎上するのね・・・。

146:デフォルトの名無しさん
08/01/09 21:14:00
ようやくまともに動くようになってきたらしいよ4.0は

147:デフォルトの名無しさん
08/01/09 21:58:38
だめじゃん。いつもこれだな、Brewは。

148:デフォルトの名無しさん
08/01/09 23:11:27
ver4て何?

149:デフォルトの名無しさん
08/01/11 03:58:06
運良く動いていたアプリもかなり多いみたいだね。


150:デフォルトの名無しさん
08/01/11 09:54:04
もう、4は非対応でいいよ。
続けても、たいして利益でないし。


って、ジャッジしてくんないかなぁ。
肩身セマス

151:デフォルトの名無しさん
08/01/11 10:17:47
おれもそのおかげでほかの業務の進捗にも影響だしてて・・・
ほんと、なんとかしてほしい。

152:デフォルトの名無しさん
08/01/11 11:22:50
そこまで各開発側に作らせのか、とう部分だいぶ増えたよね
そんなもんK様の方で共通ライブラリリリースしてほしいわ

153:デフォルトの名無しさん
08/01/11 13:07:34
カメラ周りで涙目な俺

154:デフォルトの名無しさん
08/01/11 13:42:58
例外をキャッチするんだ('д')!

155:デフォルトの名無しさん
08/01/11 14:29:38
(´・ω・`)Ver4ってそんなに酷いのか

156:デフォルトの名無しさん
08/01/11 15:13:41
スレ違いならご勘弁。

BREW3.1用のアプリを作成してるんだけど、W51H、W52P,W53CA等の機種ではアップロードできない。
(ケーブルを使って、PCから直接端末へ送ることが出来ない)

アップロードしようとすると以下のエラー。
Error-Could not locate required BREW Directories on the specified deviece.Please verify the specified Brew version.

ちなみに以下の機種ではアップロードできた。
W52SH、W31T、W43T、W53S、W54T、W33SAII

解決方法あったら御願いします。


157:デフォルトの名無しさん
08/01/11 15:25:30
>152>153に大いに共感

158:デフォルトの名無しさん
08/01/11 15:28:22
>156
多分前スレ>845-860が答え。見られるかい?

159:デフォルトの名無しさん
08/01/11 16:01:27
> 158
サンクス。

しかし・・・前スレ見れない・・・。

160:デフォルトの名無しさん
08/01/11 16:05:43
>>1のwikiの過去ログからどうぞー


161:デフォルトの名無しさん
08/01/11 16:07:06
ヒント:MYSYNCケーブル使え

162:159
08/01/11 16:30:37
>160 >161
サンクス。
前スレ読めた。

しかし・・・確認してみたが駄目だった。
ケーブルはMYSYNCケーブルを使ってるはずなんだが・・・。


163:デフォルトの名無しさん
08/01/11 16:37:45
おまじないしてないんじゃね?

164:159
08/01/11 16:46:07
>163
おまじないって・・・?
BTIL Development Kit をUpdateして、INIファイルに2行を追加ってヤツですか?

なんか質問ばかりで申し訳ない。

165:デフォルトの名無しさん
08/01/11 16:48:21
守秘義務過ぎて書けないあのおまじない。

166:デフォルトの名無しさん
08/01/11 16:48:46
>>164
ToolsSuite3.1.1 SP02 をインストールして、AppLoader起動時ダイアログの一番下のプルダウンメニューでEFS1を選択すればいいってばっちゃが言ってた

167:159
08/01/11 16:52:19
>165
「おまじない」って端末にアップロードできるようにするやつ?

それはやってあるはず。
CPさんが直接設定した端末貸してくれたし。

それとも他にあるの・・・>おまじない

これ以上聞くのはやばいかな(汗)。


168:159
08/01/11 16:54:34
>166
サンクス!!
ブラボー!!
認識しましたよ。

ほんと~にありがとう!!
これで今夜はぐっすり眠れる・・。

169:デフォルトの名無しさん
08/01/16 18:29:10
質問です。

最近の端末は液晶の解像度がQVGA以上になってるけど、それらの端末でアプリを表示すると小さく表示されてしまう。
※アプリの画面サイズは240×240なので、画面の半分程度になってしまう。
それを回避する方法ってないですか?
(つまりは倍化して表示したい)

VアプリなんかだとJamファイルの記述を変更すると、自動で倍化されたと思ったけど、同じような機能ってないですか。
知ってる人、宜しく御願いします。

170:デフォルトの名無しさん
08/01/16 18:45:21
ヒント:JAVAとBREWは別物です
ヒント:JAVAとBREWはそもそもシステム的な概念において階層が異なります
ヒント:BREWでJAVAのVMを作れますがJAVAでJAVAのVMを作ることは困難で無意味です
ヒント:BREWの基本機能として自動的に解像度に最適化させる機能はありませんが
   関数として組むことは可能です

171:デフォルトの名無しさん
08/01/16 18:48:01
その関数のソースくれよ

172:デフォルトの名無しさん
08/01/16 18:51:56
ヒント:キャリアによってはBREW以外の部分で対応する仕様定めているものもあります
    またそのような仕様に関する情報は守秘義務が発生する場合があるので
    各キャリアに仕様を問い合わせるべきでしょう

173:デフォルトの名無しさん
08/01/16 19:17:24
このヒントは役に立ちましたか?

はい       いいえ

174:デフォルトの名無しさん
08/01/16 19:29:27
このヒントは役に立ちましたか?

>はい       いいえ



■警告!
深刻なエラーが発生しま
した。問題を解決するに
は、後260時間の労働が
必要です。


はい   Yes  OK

175:デフォルトの名無しさん
08/01/17 00:26:17
あんた鬼だなw

176:デフォルトの名無しさん
08/01/17 00:28:02
特定機種(W42xx)でアプリ起動中の着信に対して反応しない
着信音もバイブレータも無反応、ただし通話は可能

というバグ報告が来てまして、とても困ってます。
他社アプリでは正常動作するらしいし、マナーモードってオチでもなさそうです。

なにかシステムイベントに対して処理が必要なんでしょうか…?
どなたかご存知のかたいましたら、教えてくださいませ。



177:デフォルトの名無しさん
08/01/17 00:32:04
アプリのソースくれ

178:デフォルトの名無しさん
08/01/17 00:55:30
すみません、全部はアップできません
気になる箇所とか言っていただければ可能な範囲でアップします

ちなみにサウンドは、、、
ISHELL_CreateInstance(a->m_pIShell, AEECLSID_MEDIAPHR, (void **)&obj->sound1);
ISHELL_CreateInstance(a->m_pIShell, AEECLSID_MEDIAPHR, (void **)&obj->sound2);
ISHELL_CreateInstance(a->m_pIShell, AEECLSID_MEDIAPHR, (void **)&obj->sound3);
としてSMAFで同時発音してます。
バイブレータ機能は使ってません。

179:デフォルトの名無しさん
08/01/17 01:01:05
サスペンド処理はちゃんとやってるだろな

180:デフォルトの名無しさん
08/01/17 08:55:02
>>176
それってもしかして売却した会社の機種?
だったらかなり問題の多い機種だと思うから、キャリアのFAQが見れてないなら
見ておいた方がいいと思うんだ

181:デフォルトの名無しさん
08/01/17 15:56:00
サスペンド処理やってます
EVT_APP_SUSPENDでIMEDIA_Release()してます
他にも何か必要でしょうか...?

機種は、3社で3機種です(今のところ?)
同じ会社でもW43xxだと問題ないようです
キャリアのFAQは手元にないので、、、問い合わせてみます

182:デフォルトの名無しさん
08/01/17 16:54:07
以前作成したアプレットをエクステンション化してるのですが質問です。
アプレットだとGETAPPINSTANCE() で自分のアプレット構造体のポインタ取れるけど、エクステンション
で自分のコンテクスト取れる関数って無い?

183:182
08/01/17 16:59:00
クアルコムの開発者フォーラム検索したらすぐに見つかりました。
そんなもん無いようですね。

184:デフォルトの名無しさん
08/01/17 21:59:01
>>181
ISOUNDは大丈夫?
キー操作音(の消音含む)とか

185:デフォルトの名無しさん
08/01/17 22:57:41
RVCT3.0 で、make ファイルにスペースの入ったパスって使えるんだっけ?
いや、テストすれば5秒でわかる話なんだが、環境が手元になくってさ。。。

186:デフォルトの名無しさん
08/01/18 00:27:54
テストしろタコ

187:デフォルトの名無しさん
08/01/18 01:07:32
ISOUNDは使ってないです
そーいえばキー操作音は鳴ってないですね、何もしてないのに、、、ん?

ちょっとテスト...
どうやらIMEDIAインスタンス作ると鳴らなくなるようです
てことはもしかして、、、
ISOUND_Get()でデバイス属性を取得して、ISOUND_Set()してあげないとダメ、なんでしょうか...?
(というか常識だったりしますか?/汗)

明日にでも試してみます(手元に実機ないので...
いろいろありがとうございます

188:デフォルトの名無しさん
08/01/18 01:33:22
バグ直さずに帰ってるの?いい会社だな

189:デフォルトの名無しさん
08/01/18 02:09:26
いえいえ、まだいますよw
他にもバグありますから...
デバッグ会社に送らないと直ってるかわからないので明日かなぁ、と
そちらもガンバってください

190:デフォルトの名無しさん
08/01/18 10:11:11
おまいら(´;ω;`)

>>185
RVCT1.2から使えてたよ。
デフォルトのまんまだとダメだって話なだけで。

つか、RVCT3.0は1.2のmakefile流用できないのでかなり書き換え必要。


191:デフォルトの名無しさん
08/01/18 10:31:03
>>189
がんがれよ

192:デフォルトの名無しさん
08/01/18 17:36:11
すみません、IHTMLViewerを使って、リソース内にあるhtmlを表示する場合、
imgタグに囲まれたファイルをどうやって渡すかご存知の方おりますでしょうか?
大ざっくりで良いので教えていただきたいのですが・・・

IWebを使う方法ではやったことあるんですが。


193:デフォルトの名無しさん
08/01/18 21:20:29
>>191
がんがりますw

>>192
IHTML_Viewerは使ったことないですが...
参考になるかもです。
URLリンク(brewforums.qualcomm.com)

それにしてもこの時間でデバッグ報告なしって...どゆこと?

194:デフォルトの名無しさん
08/01/19 13:19:19
きっとまだキムチパーティーが終わってないんだよ

195:192
08/01/21 11:49:16
えいごよみたくなーい(゜Д゜#)

じゃなくて、>>193 ビンゴでした。
どうもありがと~


196:デフォルトの名無しさん
08/01/27 16:17:39
VISTAにSDK入れるにはどうしたら良いんでしょう?
あと、MIDP2.0アプリをBREW3.1で走らせるには、何が必要なんでしょう?


197:デフォルトの名無しさん
08/01/27 18:04:14
脳味噌

198:デフォルトの名無しさん
08/01/28 02:06:28
>>196
>>170

199:デフォルトの名無しさん
08/01/28 17:50:20
ふと思ったんだけど

BREWってC/C++でしか開発できないの?
別な言語のフロントエンドからGCCバックエンドに渡しても㍉?

200:デフォルトの名無しさん
08/01/28 18:03:10
>>199
インスタンスを上手く扱えるならなんでも行けますよ。

201:デフォルトの名無しさん
08/01/28 19:41:47
な、なんか含みがあるのが気になる・・・

勿論商用でやるのは無理だろうけど、
DでBREW開発やれたら 少しだけBREWを好きになれるかも?なんて思った次第です

202:デフォルトの名無しさん
08/01/28 19:44:41
言語のランタイムカーネルがBREWみたいなうんこ環境も想定して作られていればできるかもね。

203:デフォルトの名無しさん
08/01/28 23:33:48
一生思ったままでいろ

204:デフォルトの名無しさん
08/01/29 00:58:03
おまいらうんこ環境、うんこ環境ってけなすな。
うんこにまみれて仕事する身になってみろ

205:デフォルトの名無しさん
08/01/29 08:24:16
Q. BREWて正直うんこなんですが…_ト ̄| (((〇
A. そうかもしれません
しかし手段・道具によらず目的を達成するのがプロというものです
がんばりましょう

206:176
08/01/29 11:33:43
そっか、うんこにまみれてるのか自分...
ところで以下のコード入れたら治りました。
報告遅くなりました&いろいろありがとうございました~

ISHELL_CreateInstance(a->m_pIShell, AEECLSID_SOUND, (void **)pISound);
if(pISound!=NULL){
ISOUND_Get(pISound, &pSoundInfo);
ISOUND_Set(pISound, &pSoundInfo);
ISOUND_Release(pISound);
}

うーんBREWって奥が深い...w

207:デフォルトの名無しさん
08/01/29 21:03:55
K-BREW-TESTのMAXファイル作成でEFS埋めるみたいに、
JAVAでレコードストア埋めるようなツールって作成可能ですか?

スレ違いだったらすいません

208:デフォルトの名無しさん
08/01/29 23:50:34
叶だよ
ぐぐりゃどっかに落ちてる

209:デフォルトの名無しさん
08/01/30 08:16:46
Kうにゅうの容量梅は遅いから自分でつく田

210:デフォルトの名無しさん
08/01/30 08:57:34
SDに埋めたいだけのダミーファイル作って端末メニューからコピーして埋めてる

211:デフォルトの名無しさん
08/01/30 13:17:49
>>208
探し方が悪いのか、なかなか見つかりません。
良ければ参考になりそうなサイト教えてもらえませんか?

212:デフォルトの名無しさん
08/01/30 19:02:23
無いなら作りゃええやん?


何故ならこの身は産み出すことに特化した魔術回r(ry

213:デフォルトの名無しさん
08/01/30 19:38:24
なにぶん初心者なので、レコードストアへのファイル作成とかのソースがあったら参考にしたかったんです。
文字を保存とかはあるんですが…。
MAXファイルみたいに最大容量を作るとなるとなかなか無くて。

214:デフォルトの名無しさん
08/01/30 21:16:07
ともかくスレチな訳だがOAPからは無理よ。
>>210の方法でいいじゃないかと。


215:デフォルトの名無しさん
08/01/31 09:23:40
Brew3.1でのFEPの質問です。
文字入力画面(FEP)を実装したのですが、端末によって挙動が表示がことなります。
問題が起きたのはW51SHで、FEPの上からさらにアプリの描画を行っているような
表示になってしまいます。
FEP起動中はアプリの描画処理には飛ばさないようにしていて、
実際描画は行っていないのですが、なぜかFEP起動以外の時と同様に
描画されてしまいます。
アニメーションもしているので、FEPを起動しても常に描画されてる
という状態です・・・。
何か原因などわかりますでしょうか?

216:デフォルトの名無しさん
08/01/31 10:08:50
FEP自体を実装したのか。それはすごい。

217:215
08/01/31 10:53:20
>216
すみません、日本語が変でした。

218:デフォルトの名無しさん
08/01/31 11:04:55
ヒント:イベントハンドラ


文字入力画面ちうはキーイベントをTextCtlに全て渡すようにしなきゃ
暴走するように機種がたくさんあるZE

219:sage
08/01/31 11:06:58
>215
コールバック関数内に描画ロジック入ってるんじゃね?

CB内で状態遷移させるとタイミング制御がシビアになるから
漏れの場合だとSendEventでアプリイベント飛ばしてイベントハンドラ内で
状態に応じた処理書いてるよ。

ちなみに文字入力は各社実装依存のせいか、そのタイミングでの
着信時動作にばらつきがある(ちゃんとSUSPEND寄越さないメーカーが居る)ので
文字入力状態に突入する直前にはメディアとかサウンド系なんかの競合発生しそうな
ものはインスタンス破棄しておいた方がいいお。


220:デフォルトの名無しさん
08/01/31 16:52:53
MEDIA SKIN のSDカードのPCフォルダのパスって何なんでしょうか
fs:/card0/ だとアクセスできないみたいなんですよね
IFileMgrが使えないのかなぁ

221:220
08/01/31 16:59:03
間違えました、Infobar2 でした

222:デフォルトの名無しさん
08/01/31 23:01:19
>215
過去に自分が引っかかった点を書いてみる。参考になれば幸い。

まずITEXTCTL_HandleEvent()が正しく記述されているか確認する。
記述自体が正しくてもフラグ制御でミスってスルーされてないかチェック。

次にサスペンドイベント内で描画のフラグ制御をしてたら要注意。
FEP起動時・復帰時の挙動(イベント発生タイミング)は端末依存。
イベントハンドラではTMJ_FEPIN/TMJ_FEPOUTを監視してフラグ制御するのがおすすめ。
if (eCode == EVT_CTL_TEXT_MODECHANGED && wParam == TMJ_FEPIN){描画フラグoff}
if (eCode == EVT_CTL_TEXT_MODECHANGED && wParam == TMJ_FEPOUT ){描画フラグon}

223:デフォルトの名無しさん
08/02/01 01:39:38
他のメーカーにはブロックが入ってるだけで、やっちゃいけないことをやってるのは確実っぽいな

224:215
08/02/01 09:08:53
>>218,219,222,223
みなさんありがとうございます。
指摘していただいた怪しい点をもう一度チェックしてみます。
進捗があればご報告します。

225:215
08/02/04 18:53:34
FEPの上からさらにアプリの描画を行ってしまう不具合は無事解決できました。

画面への描画は、

draw

IGRAPHICS_Update()
IDISPLAY_Update()

という流れで行っていたので、アップデートさえ制御すればいいと思っていました。
draw自体も行わないようにしたら解決できました。
ありがとうございました、大変助かりました。

226:デフォルトの名無しさん
08/02/04 21:02:34
BREW2.1/3.1でPCM音として使うファイル形式はどれを使うのが妥当なのでしょうか?

最初は、QCPを使っていたのですが、音質が悪いというクレームが入りました。
次にYAMAHAのWSDを使ってMA3向けにmmfを作りました。音質は良いと
言われたのですが、一部の機種ではまったく音が鳴りませんでした。
MA3向けに作れば3/5/7全てで音が鳴ると思っていたのですが
違うようですね。

QCPで我慢するしかないのでしょうか・・

227:デフォルトの名無しさん
08/02/05 09:56:55
以外と弊害が知られていないのかな?
IDISPLAY_Update()ってAPIは仕様通りに「非同期API」なんだ。
呼び出し直後に状態遷移させてしまうと、タイミングによっては(メーカーによっては)
表示がおかしくなってしまう現象が発生する事がある。

個人的にはIDISPLAY_UpdateEx()できっちりかっちり同期表示させてやった方が
「あるメーカのある機種のあるタイミングで表示がおかしくなる」という不具合の
発生を抑える事が出来るよ。

※メーカーによっては、非同期APIだとしても瞬時に終わるものについては
内部で同期実装しているものがあります。


228:デフォルトの名無しさん
08/02/05 15:21:53
>>226
振動やLED点灯のデータが入っているのでは?


229:デフォルトの名無しさん
08/02/05 23:43:29
>>226
PMC音源を使わなきゃいいじゃないかJK

MMFの詳しい仕様は知らないがMIDIやPMCやLED点灯タイミングや
バイブタイミングやらを纏めたファイルでいくつか形式があり
再生可能な形式は決まっている
KDDIに関して言えばガイドライン辺りにリソースに関して記述あったような希ガスなので
キャリアごとに対応形式をよく調べておくといいお

とくに某WILLCOMとかゲフンゲフン

230:デフォルトの名無しさん
08/02/06 00:21:26
今もWILLCOM向けの仕事やってる人いるのかよw

231:226
08/02/06 19:05:04
>>229
 ふむふむ

 で、226に書いたのは気にしないでおくれ・・
先方が該当機種にリソースを転送する時にミスったもよう。
KDDI、MA3で問題無しでした。

 話変わって、テスト用に使う端末でお勧めないですかね。
リセットが1秒で終わるとか転送がめちゃ速いとか。

232:デフォルトの名無しさん
08/02/07 14:52:12
古い話で申し訳ありませんが、過去677氏が出してくれた
mod圧縮ですが、過去ログ参照すると
modそのものがあるようなレスもありますが、
サンプルはあようですが、そこからmodはどうやって作るのでしょうか?
(作ろうとするとIUnzipAStream ** から void ** に変換できなど言われたりします)
もしくはmodそのものがどこかにあったりするのでしょうか?


233:デフォルトの名無しさん
08/02/07 16:06:26
使った事無いからアレだけど、
自分のアプリをmodファイルの状態で普通に動かせる状態にしたら、
gzで圧縮してmod.binにリネーム。
代わりに677氏のプログラムを普通にコンパイルして
俺アプリ.modとして使うだけじゃないの?


234:デフォルトの名無しさん
08/02/07 16:16:20
>>233
それは理解しておりますがが、肝心な677氏のプログラムをコンパイルして
modファイルにするって部分でつまずいてる次第です。

235:デフォルトの名無しさん
08/02/07 16:55:12
cast に失敗してるなら強制的に投げろよ

236:233
08/02/07 20:05:45
>>234
普通に677氏のソースをそのままコンパイルしたら使えたけど?
何を理解していて何がわからないのか232の文じゃ全然解らん。


237:234
08/02/07 20:20:03
そのままと言うのがいま一つ分かりかねるのですが
エミュでは動かない(動かす必要がない)ので、
直接modファイルにすると思うのですが、
gnude(GNUARM)でも作成出来るのでしょうか?
こちらの環境ではエラーが出てしまったので、
一部書き換え等が必要かと思った次第です。
もしgnued(GNUARM)でmodファイルを作ったのであれば
makeファイルはどのように記述されたのか、ご教示頂けると助かります。

238:デフォルトの名無しさん
08/02/07 20:36:57
そのままって、そのままの意味だろw
手を加えずにコンパイル可能。

gnudeなら最初からそう書かないと。情報の後だしは良くない。
static_castじゃなくてCスタイルのキャストにしてみ。

239:238
08/02/07 20:43:46
static_cast<typeA>(typeB)はtypeBからtypeAへ暗黙の型変換が可能なことが条件。
int* から void* へは暗黙で変換されるけど、int** から void** へは無理なはず。

最初にmod圧縮コードが公開された時はRVCT1.2しかなかったから、static_castは
使えなくてCスタイルキャストとして処理されてた気がする。
なので問題でなかったんじゃないかな。

240:234
08/02/07 21:08:52
>>238
色々と有難うございました。
まだgunedでのリンクがうまくいきませんが、
ひとまずエラーは出なくなりましたので、
色々考えてみます。


241:デフォルトの名無しさん
08/02/07 22:52:54
>239
本筋と関係ないが一応突っ込んどくと暗黙型変換の逆変換も可能なはずだが(例外もあるし結果が意図通りになるには条件が必要だけど)。

242:デフォルトの名無しさん
08/02/07 22:56:35
逆変換って何ぞ?

243:デフォルトの名無しさん
08/02/08 04:56:54
BREW4.0の開発環境ってBREW2.1とかと別のマシンに作ってたりする?
同じでも問題無いよね?

244:デフォルトの名無しさん
08/02/08 10:47:14
いまのところ同じにしても問題は出てない

245:デフォルトの名無しさん
08/02/08 14:25:09
677氏が流してくれたmod圧縮コードなんですが、
BREW4.0環境で動かせた方おりますか?
2.1/3.1ではちゃんとに動いてくれてるんですけど、4.0の実機(W56T)だとリセットがかかっちゃって困ってます。
(もちろん圧縮前のmodはちゃんと動きます)
どこかコード書き換えないといけないんですかね?

246:デフォルトの名無しさん
08/02/08 20:39:40
BREW4.0からメモリ保護つくとか言ってなかったっけ?
だとするとExecutableとしてマークされてないと保護違反じゃね?

247:デフォルトの名無しさん
08/02/08 20:40:28
ちょっと調べてみたが、AEEMod_Load()関数(およびそこから呼び出される関数)の内部ではIFileMgrがCreateInstanceできないみたいだ(エラーコード3)
アプリのAEEClsCreateInstance関数までくるとインスタンス生成可能

AEEMod_Load呼び出しからAEEClsCreateInstance(というか、AEEMod_CreateInstance)呼び出しの間で実行権限が切り替わっているようだな

248:デフォルトの名無しさん
08/02/08 22:43:33
modをローダに静的リンクしちゃえばIFileMgr要らないね。少々ヒープ圧迫するけど。

メモリ保護ってのは、アプリプロセスの領域外へのアクセス制限だけだろ。
ARMの分際でx86ばりの実行保護ってどんだけ。

249:デフォルトの名無しさん
08/02/08 22:46:01

なにこのバカ

250:デフォルトの名無しさん
08/02/08 23:00:20
圧縮という観点ではそうだな>IFileMgrいらない

251:247
08/02/09 00:19:17
モジュール実体読み出し部をCreateInstanceの方に動かしてみたがどうも動作が安定しない
IModuleの参照カウントがミスマッチ起こしてるのかと思ったが電源ON後最初の起動で落ちることもある...

終電だから帰るわ

252:デフォルトの名無しさん
08/02/09 00:26:47
終電だから帰るって。。。なんというゆとり

253:デフォルトの名無しさん
08/02/09 00:30:47
ごめん。俺はもう帰ってるw

254:デフォルトの名無しさん
08/02/09 00:32:33
>>252
なんという奴隷

255:デフォルトの名無しさん
08/02/09 09:49:27
>>254
家族が人質にとられてるんだろう。
そうでなければ悪の組織に操られてるな。

256:デフォルトの名無しさん
08/02/09 10:49:59
>242
>static_cast<typeA>(typeB)はtypeBからtypeAへ暗黙の型変換が可能なことが条件。
だけじゃなくて、
static_cast<typeA>(typeB)はtypeAからtypeBへ暗黙の型変換が可能な場合も適用可能、という意味。
例外とか正確なところは規格見てくれ。

257:245
08/02/09 16:28:39
一応できたので報告しておきますね。
他の方も言っているように、AEEMod_Loadの中ではIFileMgrを
インスタンス化できないみたいで、そこで逝っちゃってたみたいです。
なので、>>248さんが言うように、圧縮されたバイナリを
ファイルから読むんじゃなくて静的リンクしたらうまくいきました。
でもこれだと圧縮バイナリの分ヒープを余計に食っちゃうんですよね。。。
もっといい方法ないですかね?

258:デフォルトの名無しさん
08/02/09 19:57:37
barに突っ込んでISHELL_LoadResData()

barファイルを読む権限も閉じられてる悪寒がするけど。

259:245
08/02/09 22:35:19
>>258
いま試してみましたけどダメっぽいです。
ISHELL_LoadResDataがNULL返してきます。
AEEMod_Loadの中でやるには静的リンクしかないですかね?
あとは>>251さんの方法に希望を繋げますか…

260:247=251
08/02/12 23:28:15
みんな喜べ!


一日進展なし _no
32bitアライン不正かと思ったけど問題なさそうだしさっぱりわからん...
2-3回起動すると落ちる...同じポイントで落ちてるっぽいからファイルにログ出してみるかな...


>>259さん
何回か起動→終了しても落ちないですか?

261:デフォルトの名無しさん
08/02/12 23:49:09
なんでたった一日で喜ぶんだ?


262:245=259
08/02/13 00:35:47
>>260さん
一日お疲れ様です。
厳しそうですね…
静的リンクの方法だと、もう起動→終了なんて何十回もしてますけど
落ちたりはしません。
ベース部分は677氏のコードそのままでちゃんと動いてますから、
メモリ保護とかアラインとかは関係ないと思います。

263:デフォルトの名無しさん
08/02/14 12:08:40
すまん。BREW4シリーズのSDKって今どこからダウンロードすればいいの?
ドキュメント通りに辿ってもリンク出てこないし、開発始めることすらできないよ

264:デフォルトの名無しさん
08/02/14 12:27:44
とりあえず、何も考えずに3.1のSDKをダウンロードしようとしに行ってみろ。

265:デフォルトの名無しさん
08/02/14 12:34:22
URLリンク(brewx.qualcomm.com)

ここで一度AgreeしてBackで戻ってリロード

Agreeするかどうかは自分で判断

266:デフォルトの名無しさん
08/02/14 19:10:12
4.0機、ファイルへの書き込みの優先度下がってないか...
DBGPRINTFでの出力>ファイルへのログ書き込み、になる

267:デフォルトの名無しさん
08/02/15 02:01:45
>>264-265
ありがとう、無事ダウンロードできたよ。
Backしてリロードか('A`)

268:デフォルトの名無しさん
08/02/15 09:04:04
裏技かよw

269:デフォルトの名無しさん
08/02/15 20:10:23
くあるこむ(笑)











('A`)ヴァー

270:デフォルトの名無しさん
08/02/15 20:23:52
さあ、仕事に戻ろうぜ

271:デフォルトの名無しさん
08/02/15 22:41:03
いやです

272:デフォルトの名無しさん
08/02/17 03:40:17
C++使いたいときは普通URLリンク(www.s-cradle.com)とか使うもんなの?
みんなはC/C++どっちを使ってる?

273:デフォルトの名無しさん
08/02/17 03:51:24
特に理由がなければC++で使ってるけど、そふぃたんのは使ってない。

274:デフォルトの名無しさん
08/02/17 03:53:29
>>273
フレームワークは全部自社で作ってるんですか?

275:デフォルトの名無しさん
08/02/17 04:01:03
うちは会社で共通のBREW用フレームワークは・・・存在しないなあ。
多分、個人個人で自分用のは作って持ってると思うんだけど。

そんなんでもやっていけるもんです。はい。

276:デフォルトの名無しさん
08/02/17 04:10:43
オープンソースのBREW C++フレームワークってないんですか?
なければ自分で作ろうと思うんですが。

277:デフォルトの名無しさん
08/02/17 05:19:51
オープンソースの世界って、意外にもビジネス以上に将来性や需要性
(誰がそのコードを欲しがるのか? 誰がそのコードにコミットしたがるのか? それはこの先生きのこる技術か?)
に対して厳しい。
BREWはそれを持っているか。

278:デフォルトの名無しさん
08/02/17 11:13:03
最後をAndroidに置き換えるても泣けるぜ

279:デフォルトの名無しさん
08/02/17 11:51:05
>>276
ソフィアのページからのリンクで、こんなのがあるよ
URLリンク(lightblue.tigris.org)

280:デフォルトの名無しさん
08/02/17 12:19:06
フレームワークってなんですか?
知らなくてもBREWアプリ何年も作ってますが

281:デフォルトの名無しさん
08/02/17 17:47:36
>>276
ガンバレ。

>>280
> フレームワークってなんですか?
BREW のことだお。

282:デフォルトの名無しさん
08/02/18 02:17:31
オープンソースの場合、基本が無料じゃないとやる気でないお
フレームワークってのは、いろいろ作ってると処理が同じところが出てくるから
そこを関数やクラスで纏めたものだお

283:デフォルトの名無しさん
08/02/18 14:11:57
メール機能のあるアプリで検証受けると
「存在しないアドレスにメールを送ってもエラーにならない」
とか指摘されるんだが、kの中の人は自分の携帯で
メールを送った事がないのかとしばし思う。

すまん独り言だ。


284:デフォルトの名無しさん
08/02/18 14:44:16
FontCreatorのBREW4.0版って無いよね・・・?
フォント調整面倒だのぉ。

285:デフォルトの名無しさん
08/02/18 21:57:34
>>283
実際検証してるのは外注で、
kも外注検証の報告をロクにチェックせず
スルーで出してるだけって思うのは俺だけか?

俺の所であったのはアプリからWebToで標準ブラウザを起動していたのだが
その起動したブラウザからとあるサイトへ接続すると
ブラウザが落ちると言う報告来た事があった。
WebToしてブラウザが起動した時点でアプリは終了してるし、
標準ブラウザに対してアプリでどう対応しろと?と聞きたかった。


286:デフォルトの名無しさん
08/02/18 23:13:09
>>284
URLリンク(brewforums.qualcomm.com)

287:デフォルトの名無しさん
08/02/18 23:20:16
>>286
おりょ。
昼間検索したときは引っかからなかったのにw
助かりました。サンクス。

288:デフォルトの名無しさん
08/02/18 23:43:07
投稿が朝の7時w

289:デフォルトの名無しさん
08/02/18 23:50:05
>>285

> 実際検証してるのは外注で、

KCCSとかISBとかじゃなかったっけ?

290:デフォルトの名無しさん
08/02/19 00:27:37
害虫だよ

291:デフォルトの名無しさん
08/02/19 00:32:55
検証のバイトがしたい

292:デフォルトの名無しさん
08/02/19 00:46:11
おれもおれも
そんで、チマチマねちねちとよくひっかかりそうな境界条件ばっかりチェックして嫌がらせするんだぁあー

293:デフォルトの名無しさん
08/02/19 00:50:45
多分、そんないいもんじゃないと思うよ・・・
四六時中デバッグでもしてる気分になりそう。

294:デフォルトの名無しさん
08/02/19 10:51:37
>>285
> WebToしてブラウザが起動した時点でアプリは終了してるし、

WebToした時点ではアプリは終了しないでサスペンドでそ?
ブラウザ移行と同時にアプリ終了はできなかったはず。
だからアプリからブラウザになんか影響が出てるみたいに思われたんじゃない?

295:デフォルトの名無しさん
08/02/20 01:06:48
>>294
サスペンドだよね

296:デフォルトの名無しさん
08/02/20 16:45:30
>>284
ふぉんとにね

297:デフォルトの名無しさん
08/02/20 17:22:29
誰が上手いこと言えと

298:デフォルトの名無しさん
08/02/20 17:26:23
> 245
>677氏が流してくれたmod圧縮コードなんですが、
>BREW4.0環境で動かせた方おりますか?
何方がリンクを貼っていただけないでしょうか?

>なので、>>248さんが言うように、圧縮されたバイナリを
>ファイルから読むんじゃなくて静的リンクしたらうまくいきました。
>でもこれだと圧縮バイナリの分ヒープを余計に食っちゃうんですよね。。。
もうちょっと詳しい情報をいただけませんでしょうか?
(プログラミングの初心者で、↑を読ませていただいたのですが、やり方はさっぱり解りませんOrz)



299:デフォルトの名無しさん
08/02/20 19:42:27
それ読んで分からないなら手出さない方がいいよ。
やってること自体は単純だけど、結構トリッキーだし。

300:デフォルトの名無しさん
08/02/20 22:13:47
初心者には必要無い

301:デフォルトの名無しさん
08/02/21 00:01:00
プログラミングの初心者がBREW4か・・・大変だなぁ

302:デフォルトの名無しさん
08/02/21 11:50:29
いまBrew3.1でやった物を4.0に移植しているのだが
エミュレータでIHEAP_CheckAvailがFALSEを返して困っています

拡張パッケージ(1.4)のIPrepareHeap.dllは更新しました
ほかに原因があるのでしょうか?




303:デフォルトの名無しさん
08/02/21 12:59:28
BREW4.0のIHEAP_CheckAvailの問題は、
どれかのドキュメントか開発支援サイトのFAQに
何か書いてあったような希ガス
調べてみれ

304:デフォルトの名無しさん
08/02/21 21:44:44
>>303
情報サンクス
やっとできました。BREWの日本語版を入れていたせいでした。
最新版で再度インストールし直したらIHEAP_CheckAvailが通りました


305:デフォルトの名無しさん
08/02/24 11:36:12
そいやBREW4でのmod圧縮だけど、677氏のはIModuleをルーティングしてたみたいだけど、
同じことをIAppletに対してやればいいんじゃないかな?とか思った。
本体のmodファイルの先頭(エントリポイント)をAEEClsCreateInstanceにして、
解凍用のmodファイルはAEEModule.cは全く変更せずに、AEEApplet.cのAEEClsCreateInstanceを書き換えて、

int AEEClsCreateInstance(AEECLSID ClsId, IShell* pIShell, IModule* po, void** ppObj)
{
  void* p;
  IApplet pAppletProxy;
  // pAppletProxyに偽物のIAppletクラスを作成して渡す
  ...
  // pにUnzipしたバイナリを渡す
  ...
  // 偽物のIAppletをppObjにセット
  *ppObj = pAppletProxy;
  // 本物のAEEClsCreateInstanceを呼び出す
  typedef int (*ENTRY_POINT)(AEECLSID, IShell*, IModule*, void**);
  ENTRY_POINT pFunc = (ENTRY_POINT)p;
  return pFunc(ClsId, pIShell, po, &pAppletProxy->pApplet);
}

こんな感じのプログラムを書いて、後は AppletProxy::AddRef() とか Release() とかを
AppletProxy::pApplet の方にルーティングすれば良さそうな気が。
もちろん単体では動作しなくなるし解凍用のmodのサイズがちょっとでかくなるし
makefileも書き換える必要があるけど、一応出来そうな気がする。

俺はもうBREWから引退した身だから実験しようにも出来ないんだよなぁ……。
うまくやれば状況に応じてバイナリを動的に読み替えるとかも出来そうで面白そうなのに。

306:デフォルトの名無しさん
08/02/25 10:38:38
>>305
HELPER関数テーブルへのポインタをAEEMod_Load()関数の4バイト前に配置しないと
MALLOC()とかが動作しない
HELPER周りを別のマクロに書き換えればいいかもしらんけどね

307:デフォルトの名無しさん
08/02/25 11:10:14
3.1SDK付属のAEEModGen.cだと
AEEMod_Load()   #エントリポイント
 >AEEStaticMod_New()   #IModuleのvtbl設定
  >IModuleのvtbl経由でAEEMod_CreateInstance()
   >AEEClsCreateInstance()

ってなってるからAEEClsCreateInstanceをエントリポイントにしたらダメな希ガス

308:デフォルトの名無しさん
08/02/25 11:20:56
一つ質問したいんだけど。

gcc(gnude)のarmでコンパイルすると、VSNPRINTF()みたいなva_list使う関数の挙動がおかしくなるんだけどさ、
でもヘルパ関数のSPRINTFとかは動いてるんだよね。
要は、自分で可変引数の関数を定義してva_list使うと、なんか値が壊されてるっぽいのよ。
RVCTだと問題なく動いてるソースなんだけど。
誰かgccビルドでVSNPRINTF()が動作確認できてる香具師いない?

ちなみに、ちょっと調べてみたら、gccは__cdecl指定しても__stdcallと同じバイナリ吐くらしいんだけど、関係あるんかな?

309:デフォルトの名無しさん
08/02/25 11:29:20
>>308
GCCとADS(RVCT)のva_listの定義が異なるから受け渡しが出来ない
英語のフォーラムに回避法が載ってたような

URLリンク(brewforums.qualcomm.com)

310:308
08/02/25 12:46:33
>>309
情報サンクス!

でもなんかダメみたい…他のところで問題あるんかな…

311:デフォルトの名無しさん
08/02/25 13:08:54
ソフィアは分割を諦めたようだ。

URLリンク(www.s-cradle.com)
>このバージョンから BREW 4.0 に対応します
>(但し、BREW 4.0 ではファイル分割圧縮機能はサポートされません)。


312:デフォルトの名無しさん
08/02/25 13:58:44
まぁ無理な物は無理な訳で。

313:308
08/02/26 12:34:39
>>309の方法でいけますた

BREWSDKヘルプにはVSNPRINTF()の第一引数にNULL指定すると書式指定に必要なサイズが返ってくるって書いてあるけど、gccだとなんか挙動が違うっぽい。
サイズ取得しようと、第一引数にNULL渡してVSNPRINTF()呼んだところで落ちてたらしい…

314:デフォルトの名無しさん
08/02/26 23:41:52
BREW3.1.2日本語版とBREW3.1.5英語版はどっちを使うべき?
日本語版だと動かせない処理があるから英語版にしようと思ったが、
英語版だと逆に動かせない処理があることが判明・・・。

315:デフォルトの名無しさん
08/02/26 23:56:17
BREWやめとけ

316:デフォルトの名無しさん
08/02/27 15:32:04
ITextCtlで質問
任意のタイミングで開けるようにしたいのですが、現在のところサンプルみながらやった限り
・ボタンが押されたタイミング
でしかITextCtlを起動することができません

任意のタイミングで開く技があれば教えていただけますでしょうか。

317:デフォルトの名無しさん
08/02/27 18:41:40
自力でイベント起こす。

ITEXTCTL_HandleEvent( m_pITextCtl, EVT_KEY_PRESS, AVK_SELECT, KB_NUMLOCK );
ITEXTCTL_HandleEvent( m_pITextCtl, EVT_KEY, AVK_SELECT, KB_NUMLOCK );


318:デフォルトの名無しさん
08/02/28 00:30:36
ときには起こせよイベント♪

319:デフォルトの名無しさん
08/02/29 00:08:50
>>317
ありがとう
ばっちりうまくいきました

320:デフォルトの名無しさん
08/03/01 12:59:11
とにかく、


















  ド  コ  モ  以  外  は  糞

で320

321:デフォルトの名無しさん
08/03/01 15:26:43
おいおい、ドコモも仲間に入れてくれよ。

322:デフォルトの名無しさん
08/03/03 16:39:18
マスコットカプセルのBREW4.0実機用modってどこにあるの?
いろいろたらい回しにされて結局見付からない(’A`)

323:322
08/03/03 17:24:30
スマソ自己解決
SPICEの方にあるとは盲点だった

324:デフォルトの名無しさん
08/03/05 12:46:47
4.0用のOpenGLES Extensionはどこだ…

325:デフォルトの名無しさん
08/03/05 13:41:01
BREW4.0 それ自体がひとつのアドベンチャーゲーム

326:デフォルトの名無しさん
08/03/05 22:16:52
ざんねん!わたしのかいはつはこれでおわってしまった!(わるいいみで!)

327:デフォルトの名無しさん
08/03/06 01:52:03
>>324
Kの中のひとにきけ。一般のリンクはたしか出てない

というかさ、これまともに動かないんだけど。GF5200じゃ無理なん?

328:デフォルトの名無しさん
08/03/06 04:17:04
>>327
どれだよwwwwwwwwwww

329:デフォルトの名無しさん
08/03/06 10:29:06
4.0.1のエミュレータ超絶不安定じゃないですか?
実機だと問題なく動くのにエミュだと実行時エラー吐いて死ぬ
しかも落ちる場所が毎回違うっていうアレ

330:デフォルトの名無しさん
08/03/06 10:53:17
>>257の言う、圧縮したmodを静的リンクってのは、普通に-staticつけてコンパイルするってこと?

331:デフォルトの名無しさん
08/03/06 16:31:11
>>329
Oh YES
こっちは3分おき、というかアプリ起動した直後に落ち続ける場合もある

>>328
eglInitialize()したときに、GLSLコンパイルエラーダイアログが出て関数が失敗するんだ
中で本物のOpenGLにバイパスしてるんならPCスペック不足も考えられるが、
不安定さもあって、もうエミュで動かすのはやめにしてる

332:デフォルトの名無しさん
08/03/06 17:22:16
>>330
分からないなら諦めたらいいと思うよ

333:デフォルトの名無しさん
08/03/06 19:27:16
>>327
動作保証外だし、無理かもねぇ。


334:デフォルトの名無しさん
08/03/11 09:31:16
>>330

URLリンク(ja.wikipedia.org)

静的リンク(せいてきりんく)とは、アプリケーションプログラムを
リンクした時に必要なライブラリをプログラムに含める方式。 リンク
時にオブジェクトファイルを汎用ライブラリと共につなぎ合わせ、
実行可能形式のバイナリを作成する。



335:デフォルトの名無しさん
08/03/11 14:12:32
BREW SDKR 4.0 SP04(4.0.1.46) ダウンロードできない。
登録済みなのに、登録しろと言ってくる。

336:デフォルトの名無しさん
08/03/11 15:29:38
>>335
>>263-265

BREW4.0環境で677氏のmod圧縮コードを使った場合に
IUnzipAStreamはCreateInstance出来ますか?
ECLASSNOTSUPPORTが返ってきてCreateInstance出来ないんですが
AEEMod_Load()の外でUnzipするんでしょうか?

337:デフォルトの名無しさん
08/03/11 17:53:29
BREW4.0でのmod圧縮まとめ
>>245-251、>>257-262

俺用のメモだ
決して336とかいう奴のためじゃない


338:335
08/03/11 19:28:41
>>336
ありが㌧

339:335
08/03/11 19:34:24
やはり駄目だった。
SDK ACCESS ERRORというページが表示される

340:デフォルトの名無しさん
08/03/11 22:38:58
>>339
インストールをクリックするとエラーページに飛ぶんだよねぇ


341:デフォルトの名無しさん
08/03/11 23:27:43
静的リンクしてみたが落ちたり落ちなかったり

342:デフォルトの名無しさん
08/03/11 23:49:56
>>339
URLリンク(brewforums.qualcomm.com)

登録した内容に不備があるとそうなるみたい。
自分も会社名を適当に書いたらそうなったよ。

343:デフォルトの名無しさん
08/03/12 11:06:28
>>339>>342
URLリンク(brewforums.qualcomm.com)

344:デフォルトの名無しさん
08/03/12 12:47:41
>>342
こっちはちゃんと登録したはずなのになんか弾かれた
なもんで、毎回違う同僚のアドレスで登録し直してる俺ガイル

345:デフォルトの名無しさん
08/03/12 12:54:44
>>334
本体からエントリポイントだけ切り離して別コンパイルしたやつを、
ローダのリンク時に埋め込むって認識でおk?

質問ばっかですまんこ

346:デフォルトの名無しさん
08/03/12 20:25:50
さて今日もQ社から送られてきた謎パッチとにらめっこする作業が始まるお

347:デフォルトの名無しさん
08/03/14 10:23:32
パッチとにらめっこできるだけ良いよ

俺はmod圧縮プログラムとにらめっこ
3.1の時に圧縮して出した奴の4.0対応だから、絶対に圧縮使わないと入りきらない上に
前任者は逃げたからろくに情報がない
再コンパイルだけだから余裕だって聞いてたのにC初心者の俺涙目

誰か詳しく解説して頂けまいか…

348:デフォルトの名無しさん
08/03/14 10:56:14
金出して買えば?

349:335
08/03/14 18:26:42
>>340-344
ありが㌧、ダウンロードできました。


350:デフォルトの名無しさん
08/03/15 06:32:36
GNUARM 4.x.xでのビルドについてちょいメモ。
gnudeでビルドしてmodが80KB程度になるアプリがある。ソースはC++ではなくC

GCC 4.1.1/binutils-2.17→ビルドは成功するが、modが6.8MBにもなった。
GCC 4.1.0/binutils-2.16.1→ビルドは成功し、gnudeのときよりmodが数KB小さくなった。
binutilsのバージョンが影響しているらしい。ちなみにGCC 4.0.2はbinutils-2.16.1

Add-insのGNU用makefileを使うなら、
1.「Compiler output options」のセクションで
  OUT = -c  を  OUT = -fno-unit-at-a-time -c
と変更する。「-fno-unit-at-a-time」がないと実機で起動した瞬間に落ちる。

2.GNUARMのインストール先に合わせて環境変数を設定しておく。
GCCHOME→C:\GNUARM
GCCLIBPATH→C:\GNUARM\lib\gcc\arm-elf\4.1.0

351:デフォルトの名無しさん
08/03/15 06:34:16
昨日、開発マシンを1台作るついでにちょっと実験してみた。
それはそうとAdd-insをVS.NET2008に対応してくれー
今更と思いつつVS.NET2003をインスコしましたぜ。

352:デフォルトの名無しさん
08/03/15 10:21:24
>>351
ついこの間VS2005に対応したばっかりじゃなかった?
てか、Add-ins要らなくない?

353:デフォルトの名無しさん
08/03/15 10:58:59
addinsなんて初回に試しで使ったくらいかな
はじめてのBREW という人向けだと思ってた

354:デフォルトの名無しさん
08/03/15 15:54:08
Add-ins便利だし、むしろ使わないともったいないと思うんだけどなぁ。
あとやっぱVSに統合されてるって事が純粋に楽ちんだと。

開発環境に合わなけりゃ使わずにmakefileとか自分で用意した方がいいけど、
うちでは特に不満ないんで、開発始めて何年もたった今でも使ってる。

355:デフォルトの名無しさん
08/03/18 14:30:37
まぁ、やってることっていったらmakefile吐いてnmakeに丸投げしてるだけだしなぁ
慣れてきたら自分でmakefileテキトーに編集してバッチ叩いた方が早いとオモ

VC経由でmakeすると出力ウインドウに標準とエラー出力拾ってるから、その分遅くなるよね

356:デフォルトの名無しさん
08/03/18 14:32:22
>>350
俺もmodがでかくなりすぎてびっくりしてgnudeに戻したw
なるほどbinutilsのバージョンで変わるのかー

357:デフォルトの名無しさん
08/03/18 23:24:49
流石にVC++6.0より重いとはいえ、VC++2008はずいぶん軽くなった気がするし、
実機コンパイラにRVCT3.0使ってるとテンプレートの対応度とか6.0の方が低いし、
BREW開発だけならExpressで十分だし、いい加減6.0捨てるかなぁ・・・
気づいたらもう10年になるのね、VC++6.0発売してから。

358:デフォルトの名無しさん
08/03/19 00:02:52
>>357
俺はこれだ↓
スレリンク(tech板)

359:デフォルトの名無しさん
08/03/19 10:19:35
VC6はソフトウェア界の世界遺産

360:デフォルトの名無しさん
08/03/19 10:26:16
VC6はまだCDもってるからいいんだけど、MS-CのFDを無くしてしまってがっかり。

361:デフォルトの名無しさん
08/03/19 16:45:56
MS-CのFDDもちゃんと保存管理してる俺は将来博物館を開くべきかもしれない

362:デフォルトの名無しさん
08/03/19 17:20:30
>>361
何と羨ましい。パッケージとマニュアルは出てきたけど肝心のFDDが行方不明なんだな。。

363:デフォルトの名無しさん
08/03/20 06:29:35
BREW SDK Tools1.1.1でAdd-insがVS2005に対応したようなので試してみたが、
VC++2005ExpressEditionだとAdd-insがインストールされないような?

Win32プロジェクトでDLLが作れるようになってないといかんのかな
と思ってMSのサイトに書いてあるようにPlatformSDK入れて設定した後に
BREW SDK Tools1.1.1入れてみても、やはりだめだった。

製品版のVS2005じゃないとダメかいな?

364:デフォルトの名無しさん
08/03/24 14:32:53
>>363
URLリンク(brewforums.qualcomm.com)

365:デフォルトの名無しさん
08/03/30 16:49:15
アプリ起動時に、自分自身のmodファイル名を取得できますか?
barにアクセスする前に知りたいのです。

よろしくお願いします。

366:デフォルトの名無しさん
08/03/30 18:37:47
>>365
modname_00x.barみたいにしたいんだと思うけど、それって知る必要ある??
modファイルってそんなコロコロ変わるもんじゃねーだろうし。

367:デフォルトの名無しさん
08/03/31 15:33:56
>>363
そもそもExpressはアドイン機能をサポートしてないと思うのだが。
BREW Toolsだから、ではないはず

368:デフォルトの名無しさん
08/04/01 12:35:20
>>365
>>366みたいなことがやりたいんだったら、mod名決め打ちでプリプロセッサで展開するとか
modファイル名自体が欲しいんだったら、コンパイル時のプリプロセッサオプションでtargetを#define切っとくとか

説明下手ですまん

369:デフォルトの名無しさん
08/04/01 13:12:01
IFILEMGR_EnumNextで自フォルダ内のファイル列挙して.mod探せばいいんじゃね
.modなんてひとつっきゃないだろうし

370:デフォルトの名無しさん
08/04/02 18:33:08
>>347のその後がとても気になる
というか4.0のmod圧縮方法が…

371:デフォルトの名無しさん
08/04/02 22:01:57
>>251の方法試してみた
gnudeの方でビルドしたやつはなんとか起動したんだけど
RVCTでビルドしたやつは「アプリを起動できませんでした」って出て終了

端末リセットにはならないけど…謎だ
gnudeだとローダが小さくならないし…

372:371
08/04/03 14:12:04
おまいらに朗報です
>>251の方法で677氏の圧縮modローダが再現できた

373:デフォルトの名無しさん
08/04/03 22:42:27
おまえらってさ、もしBREWが死滅したら寂しさで死んでしまうんでない?

374:デフォルトの名無しさん
08/04/04 00:00:05
いま、BREWじゃない仕事やってるんだけどさ。
・・・寂しいぜ? 実際

375:デフォルトの名無しさん
08/04/04 10:14:12
手のかかる子ほど


可愛くないな

376:デフォルトの名無しさん
08/04/04 16:31:41
いまBREWじゃない仕事やってるんだけどさ。
できればもう戻りたくない、実際

377:デフォルトの名無しさん
08/04/04 16:52:58
今も昔もBREWの仕事してるんだけどさ

URLリンク(www.4gamer.net)
がんばれIntel、ARMなんかブッこ○せ

378:デフォルトの名無しさん
08/04/04 17:50:22
正直DoJaとかMIDPとかいうやつらに比べたら1.2倍くらいまし
JavaよりC++がいい

379:デフォルトの名無しさん
08/04/04 22:39:24
newするたびにNULLチェックを強制されるC++なんて、組んでられねーよ

380:デフォルトの名無しさん
08/04/04 22:47:15
でもヌルヌル風呂は大好きだらう?

381:デフォルトの名無しさん
08/04/04 22:48:40
あっそんなにチェックしちゃダメ…

382:sage
08/04/05 18:58:02
MIDPもBREWもやってる俺は勝ち組?負け組?

383:デフォルトの名無しさん
08/04/05 22:27:13
>>382
甲斐性なし(ぇー

384:デフォルトの名無しさん
08/04/05 23:36:30
BREWに関わってるだけで負け

385:デフォルトの名無しさん
08/04/06 05:03:41
なんで、3.1と4.0では定数に互換性がないのだ。
腹立つ。

386:デフォルトの名無しさん
08/04/06 10:54:57
なんのためのメジャーバージョン変更だと思ってんだよw

387:デフォルトの名無しさん
08/04/06 22:54:53
ていうかわざわざヘッダ調べないとわからないような定数をじかに数字で書くなと。基本だろ。

388:デフォルトの名無しさん
08/04/07 02:18:37
>>379
オーバーロードしたoperator newの中でNULLったらイベント投げてエラー状態に遷移するようにしてる
完璧じゃないけどある程度は防げると思う  #どーせ検証にはソース出さないんだし

俺はDoJaとMIDPコンパチで作るのが(´・A・`)ヤダ
#define切りまくりでとんでもなく醜いソースになるのが耐えられない
特にサウンド周り致命的すぐる

389:デフォルトの名無しさん
08/04/07 09:42:04
>>388

p = new Hoge;
p->hoge();

で落ちるから、それじゃ解決にならんだろう。

DojaMIDPのコンパチは楽勝だろw
あらゆることを関数呼び出しで実行するようにつくっておけば、関数群.hのinclude自体を変えればそれで終わりじゃん


390:デフォルトの名無しさん
08/04/07 20:12:59
昔C++修行中にこんなコードを書いたことがある。
class Hoge
{
 void Func()
 {
  if (this == NULL)
   return;
 }
}
Hoge* p = NULL;
p->Func();
後で仮想関数には使えないことに気付いて捨てた。

391:デフォルトの名無しさん
08/04/07 22:48:06
>>390
面白いアイデアだったなー。
仮想関数テーブルが作られないからダメか…。残念だ

392:デフォルトの名無しさん
08/04/07 23:58:23
MFC のコードの中に this の NULL チェックしてるようなのがあったと思う。

393:デフォルトの名無しさん
08/04/08 00:13:52
仮想関数内でもできるなら、全ての関数の頭にNULLチェックつけることで
エラーの心配が無くせるんだがな・・・

394:デフォルトの名無しさん
08/04/08 10:41:51
それってnewの後にnullチェックするのと変わりないのではw

395:デフォルトの名無しさん
08/04/08 12:32:30
そんなことはない。
クラス生成に失敗しても仮想クラス関数の中まではいけるのであれば、エラーチェックの個所は相当減る
大抵のクラスは使いまわすものなんだから。


396:デフォルトの名無しさん
08/04/08 12:36:52
gccがプロファイラ用に関数hookの独自拡張提供してるだろ。

397:デフォルトの名無しさん
08/04/08 13:33:58
>>396
kwsk

398:396
08/04/08 18:42:26
>>397
ぐぐれよww

-finstrument-functions で __cyg_profile_func_(enter|exit) 呼び出すようになる。
hook function には __attribute__ ((no_instrument_function)) を指定して自分自身を呼ばないようにする。
main を hook する前に初期化したいときは、__attribute__ ((constructor)) と
__attribute__ ((destructor)) を使う。もちろん no_instrument_function も同時に指定しないとダメ。


399:デフォルトの名無しさん
08/04/09 18:32:17
>>398
いや、だから
仮想クラス関数を呼び出した瞬間エラーになるんじゃ意味ないんだが・・・
やりたいこと分かってる?

Hoge *c = new Hoge(); // ここでnew失敗してcにNULLが入る
c->normalFunc(); // 非仮想関数ならば問題なく呼べる
c->visualFunc(); // 仮想関数だと、←ここでエラー
c->iroiro();
c->syori();
return;

もし仮想関数もちゃんと仮想関数内にまで処理がいくのであれば、returnまでチェックは一切いらないことになる。
(それぞれの関数内で、(NULL == this)return;が先頭に仕込まれている)


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