BREW(Binary Runtime Environment for Wireless) 3at TECH
BREW(Binary Runtime Environment for Wireless) 3 - 暇つぶし2ch1:デフォルトの名無しさん
04/09/24 15:07:03
BREW(Binary Runtime Environment for Wireless)についてのスレ

QUALCOMM BREWホーム
URLリンク(www.qualcomm.com)
URLリンク(www.qualcomm.com)

BREW JAPAN .COM|BREW増強計画
URLリンク(www.brewjapan.com)

前スレ
スレリンク(tech板)
関連情報>>2-18

■過去スレ
02 スレリンク(tech板)
01 スレリンク(tech板)


2:デフォルトの名無しさん
04/09/24 15:24:38
>>1
関連情報まだですか?

3:デフォルトの名無しさん
04/09/24 19:39:09
('A`)ノ URLリンク(kintubo.kakiko.com)

4:デフォルトの名無しさん
04/09/24 21:11:24
>>1

>>3
リンクのまとめサイトなんてあったんだな。知らんかった


でも、なんか寂しいので追加しとくわ

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)


5:よくありそうな質問
04/09/25 00:31:37
Q.
BREWアプリを自作して自分の携帯に入れたいのですが?
A.
素人は作ることは可能ですが端末に転送することはできません
あきらめるかCPなどのプロになりましょう

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

6:デフォルトの名無しさん
04/09/25 00:40:58
Q.
BREWて正直うんこなんですが…
A.
そうかもしれません
しかし手段・道具によらず目的を達成するのがプロというものです
がんばりましょう


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

7:デフォルトの名無しさん
04/09/25 12:09:22
ぶりゅっ

8:デフォルトの名無しさん
04/09/25 14:22:11
シンビアンのほうが良くない?

9:デフォルトの名無しさん
04/09/25 15:19:48
シンビアンはウイルスあるよ

10:デフォルトの名無しさん
04/09/25 15:53:04
('A`)1の過去ログ持ってる人いますか?

11:デフォルトの名無しさん
04/09/25 16:06:54
更新されてた
URLリンク(secsvr.net)

12:デフォルトの名無しさん
04/09/25 16:08:08
>>10
持ってますよ。

13:デフォルトの名無しさん
04/09/25 16:47:06
ARMってはじめてだったけど、整数除算命令ないのね・・・orz

アライメントは良いとしても他に気をつける所ありますか?

14:デフォルトの名無しさん
04/09/25 18:38:15
>>12
URLリンク(age.tubo.80.kg)
ここにうpして頂けますか?お願いします('A`)

15:デフォルトの名無しさん
04/09/25 19:06:44
アップしました。
ぶりゅぶりゅ過去ログです。

16:デフォルトの名無しさん
04/09/25 19:31:29
>>15
サンクスです

17:デフォルトの名無しさん
04/09/26 02:40:08
SDKダウンロードできねぇす。うえーん

18:デフォルトの名無しさん
04/09/27 08:05:04
>>17

■FAQ
IE5.5SP2以降推奨、NNでも動くかも知れないけどOperaとかMozillaとかは確実に無理。
JavaScript+ActiveX。

あと、会社名とかをちゃんと登録しないとダウンロードできません。
2Channel Inc. みたいな正式な名前。
登録内容は全部英語。
(スレリンク(tech板:15番))

19:デフォルトの名無しさん
04/09/27 09:46:26
技術討論スレに話題が上がってたので質問したいのですが
BREWは携帯電話専用のAPIなんですか?
それとも携帯端末汎用?

20:デフォルトの名無しさん
04/09/27 10:36:18
>>19
一応、携帯専用APIではなかったはず・・・

Plamでなかったっけ?(計画だけか?)


21:デフォルトの名無しさん
04/09/27 22:34:55
>>18
FAQあったんだ。。。過去ログ見られないけど、サンキューです!!
Firefox使ってたよ。。。

22:デフォルトの名無しさん
04/09/28 23:55:23
武龍3.0てどんな感じですか?

23:デフォルトの名無しさん
04/09/29 00:25:17
おっ
かっこいいな>武龍

24:デフォルトの名無しさん
04/09/29 00:48:28
命名:武龍

25:デフォルトの名無しさん
04/09/29 01:41:46
よみがな:むりゅう

無理ゆう

26:デフォルトの名無しさん
04/09/29 09:56:12
お後がよろしいようで

27:デフォルトの名無しさん
04/09/29 11:01:57
虎BREW

28:デフォルトの名無しさん
04/09/29 17:39:46
質問です。

IDISPLAY_DrawTextにて文字描画を行っております。

文字の部分に枠ができてしまうのですが
解決方法はないのでしょうか?
透過というか、背景に文字が直接描かれるようにしたいのです。

IDISPLAY_DrawText(app->a.m_pIDisplay,
AEE_FONT_NORMAL, // 太字のフォント
wstr,
-1,
0,
204,
NULL,
IDF_ALIGN_CENTER);

現在はこのような感じです。
よろしくおねがいします。

29:デフォルトの名無しさん
04/09/29 17:40:38
フォントのコメントは無視してください。ミスッタ!

30:デフォルトの名無しさん
04/09/29 17:56:42
>>28
flagにIDF_TEXT_TRANSPARENTは?


31:28
04/09/29 18:02:33
ぐあ!できました!>>30様感謝!

ちなみに、フラグを || で繋げていたため
「うごかねー」と、思っていたのかもしれません。。。

ありがとうございました。

32:28
04/09/29 18:51:50
ついでといってはなんなのですが、もうひとつ。
3バイトの文字。たとえば"-あ"をAECHARにするには
どうしたらいいのでしょう。


33:デフォルトの名無しさん
04/09/29 19:07:54
STRTOWSTR()
じゃない方のワイド文字列変換
これ使うと認証通らない

34:デフォルトの名無しさん
04/09/29 19:12:27
QRコード解析について質問です。

開発環境
SDK: 2.1.1
端末: W21S
Extension(QRDEC3GV)使用

ICameraで取得した画像からQRコードの解析を行いたいのですが、どうしてもうまくいきません。

撮影した画像をファイルから読み込んで解析する場合、撮影した画像ファイルの深度を16bitに変換して
読み込む必要があるそうなのですが、16bitへの変換がうまくいきません。

また、カメラのコールバック関数内で取得したIBitmapインスタンスから直接解析を行う方法も試してみたのですが、
QRDEC_IMAGE等の構造体に格納する値がわからず、IQRDEC3GV_QrdecDecodeSymbolSetParametersで失敗してしまいます。

画像を撮影してファイルから解析を行う方法と、プレビュー画像を直接解析する方法のどちらでも構わないので、
カメラからの画像を解析する方法をご教授ください。
ちなみに、Extensionのサンプルについてきた画像からの解析は成功しています。



35:デフォルトの名無しさん
04/09/29 19:14:42
QRコード解析について質問です。

開発環境
SDK: 2.1.1
端末: W21S
Extension(QRDEC3GV)使用

ICameraで取得した画像からQRコードの解析を行いたいのですが、どうしてもうまくいきません。

撮影した画像をファイルから読み込んで解析する場合、撮影した画像ファイルの深度を16bitに変換して
読み込む必要があるそうなのですが、16bitへの変換がうまくいきません。

また、カメラのコールバック関数内で取得したIBitmapインスタンスから直接解析を行う方法も試してみたのですが、
QRDEC_IMAGE等の構造体に格納する値がわからず、IQRDEC3GV_QrdecDecodeSymbolSetParametersで失敗してしまいます。

画像を撮影してファイルから解析を行う方法と、プレビュー画像を直接解析する方法のどちらでも構わないので、
カメラからの画像を解析する方法をご教授ください。
ちなみに、Extensionのサンプルについてきた画像からの解析は成功しています。



36:28
04/09/29 19:45:27
STREXPANDでできました。
STRTOWSTRは使わない方がいいのですね。ありがとうございました。

37:デフォルトの名無しさん
04/09/29 22:01:08
カメラの撮影設定がQRコード用になっていますか?
ズームに0x7fffffffを設定してやれば各端末の最適な設定に変更されるはずです
画像取り込みをそれでおこなえば良いと思います
画像解析はメモリを直接参照すr

38:35
04/09/30 10:07:40
ICAMERA_SetZoom( pMe->Camera, (int32)0x7fffffff );
という感じで設定しています。
撮影した画像とサンプルについてきた画像をテキストエディタで開いてみたのですが、
サンプルの画像は「BM6」で始まっているのに対し、撮影した画像は最初から文字化けしていました。
従って、撮影した画像のエンコード方法がまずいのではないかと考えています。
ちなみに、ICAMERA_SetVideoEncodeで、AEECLSID_WINBMPやAEECLSID_NATIVEBMPが設定できなかったので、
AEECLSID_JPEGを設定しています。

一応、関係ありそうな部分のコードを↓に載せます。

39:35
04/09/30 10:23:36
#define QR_MAX_FILE_BUF300
#defineQR_MAX_DECODE_BUFFER_SIZE2062

// アプリケーション構造体のQRコードに関する部分 ------------
charQR_FileName[64];
unsigned char*QR_psDecodedText;// デコード結果バッファ
unsigned char*QR_psFormatText;// デコード結果フォーマットバッファ
longQR_lBufferSize;// デコード結果文字列サイズ


// QR関係プロトタイプ
static void Conv24BGRto16RGB_UpsideDownEx( IFile * pFile, unsigned char *img16rgb, long hs, long vs, long lImageSize);
static void Conv8BGRto16RGB_UpsideDown( unsigned char *img8bgr, unsigned char *img16rgb, long hs, long vs);
intQR_GetErr(QRDEC_HRESULT lErr);
static boolean QR_DecodeSymbol( IApplet* pi );// サンプルからコピペした解析用関数
static voidQR_DecodeFromBmp( IApplet* pi, IBitmap* pBmp );// IBitmapから直接解析する為の関数


40:35
04/09/30 10:24:03
/*-------------------------------------------------------------------------------
HelloWorld2_HandleEvent
ハンドルイベント
------------------------------------------------------------------------------- */
static boolean HelloWorld2_HandleEvent(AEEApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
CHelloWorld2 * pMe = (CHelloWorld2*)pi;
AECHAR szBuf[30] = {0};
int ret;

// キーイベント
case EVT_KEY: DBGPRINTF("### APP_EVT_KEY ###");
switch( wParam ){
// 選択キー押下
case AVK_SELECT: DBGPRINTF("### AVK_SELECT ###");
// カメラ:スナップショット
if( pMe->Camera && pMe->m_DispState == STATE_PICTURE ){
ret = ICAMERA_RecordSnapshot( pMe->Camera );
return FALSE;
}
return FALSE;
}


41:35
04/09/30 10:27:57
/*-------------------------------------------------------------------------------
画像撮影用関数(mode=TRUE:QRモード、FALSE:通常モード)
------------------------------------------------------------------------------- */
void GetPicture( IApplet* pi, boolean mode ){
CHelloWorld2* pMe = (CHelloWorld2*)pi;
intret;
AEESize*pList;
AEESizeList;

pMe->m_DispState = STATE_PICTURE;
IDISPLAY_ClearScreen (pMe->a.m_pIDisplay);
pMe->Camera = NULL;

// ICameraインスタンス生成
if( (ret = ISHELL_CreateInstance(pMe->m_pIShell,AEECLSID_CAMERA,(void **)&pMe->Camera) ) != SUCCESS ){ return; }

// コールバック設定
if( ICAMERA_RegisterNotify(pMe->Camera,(PFNCAMERANOTIFY)Camera_CB,(void*)pMe) != SUCCESS ){ return; }

pList = (AEESize *)CAM_MODE_PREVIEW;// OK
//サイズリストの取得
pMe->Camera_pbRange = TRUE;
ret = ICAMERA_GetDisplaySizeList(pMe->Camera, &pList, &pMe->Camera_pbRange);
if( ret != SUCCESS ){ return; }
List.cx = pList[0].cx;List.cy = pList[0].cy;

// 諸設定
ret = ICAMERA_SetDisplaySize(pMe->Camera, &List);
if( ret != SUCCESS ){ return; }


42:35
04/09/30 10:28:27
// FPS設定
pMe->Camera_dwFPS = (int32 *)CAM_MODE_PREVIEW;
pMe->Camera_pbRange = TRUE;
ret = ICAMERA_GetParm(pMe->Camera, CAM_PARM_FPS_LIST, (int32 *)&pMe->Camera_dwFPS, (int32 *)&pMe->Camera_pbRange);
ret = ICAMERA_SetFramesPerSecond( pMe->Camera, *pMe->Camera_dwFPS);

// QRモード指定
if( mode ){ ret = ICAMERA_SetZoom( pMe->Camera, (int32)0x7fffffff );// QRモード指定 }

IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_USER_BACKGROUND,MAKE_RGB(255,255,255));
IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_SYS_ITEM,MAKE_RGB(255,255,255));

// メディアデータ設定
pMe->Camera_Media.clsData= MMD_FILE_NAME;
pMe->Camera_Media.pData= "qr.bmp";
STRCPY(pMe->QR_FileName,"qr.bmp");
ret = ICAMERA_SetMediaData( pMe->Camera, &pMe->Camera_Media, "image/bitmap" );


43:35
04/09/30 10:29:20
// サイズ設定
ret = ICAMERA_SetSize(pMe->Camera, &List);
if( ret != SUCCESS ){ return; }

//IFileMgr インタフェースオブジェクトのインスタンス化
ret = ISHELL_CreateInstance(pMe->m_pIShell, AEECLSID_FILEMGR,(void**)&pMe->Camera_FileMgr);
if( ret != SUCCESS ){ return; }
//ファイルを作成
IFILEMGR_Remove(pMe->Camera_FileMgr, "qr.bmp");
if((pMe->Camera_File = IFILEMGR_OpenFile(pMe->Camera_FileMgr,"qr.bmp", _OFM_CREATE)) == NULL){ return; }
//ファイルをクローズ
IFILE_Release( pMe->Camera_File ) ;

// エンコード設定
ret = ICAMERA_SetVideoEncode(pMe->Camera, AEECLSID_JPEG, NULL);// ○

// プレビュースタート
ret = ICAMERA_Preview(pMe->Camera);
if( ret != SUCCESS ){ return; }
}

44:35
04/09/30 10:29:45
/*-------------------------------------------------------------------------------
Camera_CB
カメラコールバック
------------------------------------------------------------------------------- */
void Camera_CB( void* pUser, AEECameraNotify* pNotify ){
CHelloWorld2*pMe = (CHelloWorld2*)pUser;
IBitmap*pFrame;
AEEBitmapInfo bi;
int ret = SUCCESS;

if( !pMe || !pNotify ){ return; }

switch( pNotify->nStatus ){
case CAM_STATUS_USER_BASE:DBGPRINTF("### Camera_CB:USER_BASE ###");break;
case CAM_STATUS_FAIL:DBGPRINTF("### Camera_CB:FAIL ###");break;
case CAM_STATUS_PAUSE:DBGPRINTF("### Camera_CB:PAUSE ###");break;
case CAM_STATUS_RESUME:DBGPRINTF("### Camera_CB:RESUME ###");break;
case CAM_STATUS_DATA_IO_DELAY:DBGPRINTF("### Camera_CB:DATA_IO_DELAY ###");break;
case CAM_STATUS_SPACE_WARNING:DBGPRINTF("### Camera_CB:SPACE_WARNING ###");break;
case CAM_STATUS_START:// プレビュー開始
DBGPRINTF("### Camera_CB:START ###");
break;


45:35
04/09/30 10:39:50
case CAM_STATUS_FRAME:
{
// ▼040924▼
AEEImageInfo*info=NULL;
boolean*retbool=NULL;
//IDIB*pIDIB;
// ▲040924▲

DBGPRINTF("### Camera_CB:FRAME ###");
// フレーム取得
ret = ICAMERA_GetFrame( pMe->Camera, &pFrame );
//DBGPRINTF("### Camera_CB:GetFrame:%d ###",ret);
// ビットマップ情報を取得
IBITMAP_GetInfo( pFrame, &bi, sizeof(bi));
//DBGPRINTF("### Camera_CB:BitmapSize:%d ###",sizeof(bi));

DBGPRINTF("### IBITMAP:ImageInfo.nDepth = %d ###",bi.nDepth);

// 取得フレームから直接解析するバージョン
QR_DecodeFromBmp( (IApplet*)pMe, pFrame );



46:35
04/09/30 10:40:21
//CONVERTBMP( (void*)pFrame, info, retbool );
//DBGPRINTF("### info.nColors = %d ###",info->nColors);
//IDIB を作成し、ポインタを取得
/*ret = IBITMAP_QueryInterface( pFrame, AEECLSID_DIB, (void**)&pIDIB );
if( ret != SUCCESS ){
DBGPRINTF("● IBITMAP:QueryInterface:FAILED ●");
}
pIDIB->nDepth = 16;
//IBITMAP を開放
IBITMAP_Release( pFrame );
//IDIB をIBITMAP に変換(キャストなので開放不要)
pFrame = IDIB_TO_IBITMAP(pIDIB);
*/
//ファイルを作成
/*IFILEMGR_Remove(pMe->Camera_FileMgr, "qr.bmp");
if((pMe->Camera_File = IFILEMGR_OpenFile(pMe->Camera_FileMgr,"qr.bmp", _OFM_CREATE)) == NULL){
DBGPRINTF("● Camera_CB:CreateFile(bmp):FAILED ●");
return;
}
IFILE_Write( pMe->Camera_File, (void*)pFrame, sizeof(bi));
//ファイルをクローズ
IFILE_Release( pMe->Camera_File ) ;

QR_DecodeSymbol( (IApplet*)pMe );

*/IBITMAP_Release(pFrame);
break;
}


47:35
04/09/30 10:44:50
// 結構多いので一部省略します。
/*-------------------------------------------------------------------------------
QR_DecodeSymbol
QRコード・バーコードデコード処理
デコード対象:"pMe->QR_FileName"で指定された画像ファイル(例:"images/qr1.bmp")
デコード結果文字列は"pMe->QR_psDecodedText"に格納
------------------------------------------------------------------------------- */
static boolean QR_DecodeSymbol( IApplet* pi ){
CHelloWorld2* pMe = (CHelloWorld2*)pi;
IBitmap*pScreen = NULL;
IDIB*pDibScreen = NULL;
IFile*pFile;
FileInfofi;
IFileMgr*pFileMgr;
IQrdec3GV*pQrdec = NULL;

QRDEC_IMAGEgImage;
QRDEC_SYMBOL_INFOgSymbol;
QRDEC_STRING_INFOsInfo;
QRDEC_HRESULTrc;
longlImageSize = 0;
void*pWorkarea = NULL;
unsigned longlMemoryVecLen;
int16nLoop = 0;
int32ret32;
unsigned char*pimg24 = NULL, *pimg16 = NULL;

BITMAPFILEHEADERbmFh;
BITMAPINFOHEADERbmIh;
int ret;


48:35
04/09/30 10:46:16
{
DBGPRINTF("### QR_DecodeSymbol:Start ###");

// ファイル参照
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_FILEMGR, (void **)&pFileMgr);
if(pFileMgr){
pFile = IFILEMGR_OpenFile(pFileMgr, pMe->QR_FileName, _OFM_READ);

if(pFile){
// ビットマップヘッダの読み込み
ret32 = IFILE_Read(pFile, (void *)&bmFh, 14);
ret32 = IFILE_Read(pFile, (void *)&bmIh, sizeof(BITMAPINFOHEADER));
lImageSize = (bmIh.biHeight * bmIh.biWidth * bmIh.biBitCount / 8);
}else{ return 1; }

// ビットマップフレームデータの取得→16ビットデータをExtensionに渡すための前処理
if(bmIh.biBitCount == 24){
// 24ビット・ビットマップの場合
pimg16 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight * 2 );
if( !pimg16 ){ return 2; }
Conv24BGRto16RGB_UpsideDownEx(pFile, pimg16, bmIh.biWidth, bmIh.biHeight, lImageSize);
}


49:35
04/09/30 10:47:08
if(bmIh.biBitCount == 8){
// 8ビット・ビットマップの場合
IFILE_GetInfo(pFile, &fi);
pimg24 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight+100);
pimg16 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight+100);
if( !pimg16 ){ return 2; }
ret32 = IFILE_Seek(pFile, _SEEK_END, -lImageSize );
IFILE_Read(pFile, pimg24, lImageSize);
Conv8BGRto16RGB_UpsideDown( pimg24, pimg16, bmIh.biWidth, bmIh.biHeight);
}
if(pFile){ ReleaseObj((void**)&pFile); }
if(pFileMgr){ ReleaseObj((void**)&pFileMgr); }
}else{
if(pimg24){ FREE(pimg24); }
if(pimg16){ FREE(pimg16); }
return FALSE;
}

}


50:35
04/09/30 10:48:23
// Extensionを利用してのデコード処理
// パラメータの設定
gImage.imSize= sizeof(QRDEC_IMAGE);// 構造体サイズ
gImage.imPixels= pimg16;// フレームデータバッファ
gImage.imWidth= bmIh.biWidth;// イメージ幅
gImage.imHeight= bmIh.biHeight;// イメージ高さ
gImage.imBitCount= (bmIh.biBitCount == 24) ? 16 : 8;// ビットカウント
gImage.imCompression= QRDEC_BI_RGB;// 圧縮形式
gImage.imSourceCameraType= QRDEC_IM_DEFAULT;// カメラ情報1
gImage.imSourceCameraValue= 0;// カメラ情報2

gSymbol.siSize= sizeof(QRDEC_SYMBOL_INFO);// 構造体サイズ
gSymbol.siSymbolType= QRDEC_QR_CODE_M2 | QRDEC_JAN13 | QRDEC_JAN8;// ターゲットシンボルタイプ
gSymbol.siQRVersionLow= 1;// QRコード対象最小バージョン
gSymbol.siQRVersionHigh= 20;// QRコード対象最高バージョン


51:35
04/09/30 10:51:55
// 結果文字列受取バッファの確保
if(!pMe->QR_psDecodedText){
pMe->QR_psDecodedText = (unsigned char *)MALLOC(QR_MAX_DECODE_BUFFER_SIZE);
if( pMe->QR_psDecodedText == NULL ){
if(pWorkarea){ FREE(pWorkarea); }
if(pimg24){ FREE(pimg24); }
if(pimg16){ FREE(pimg16); }
if(pDibScreen){ ReleaseObj((void**)&pDibScreen); }
if(pScreen){ ReleaseObj((void**)&pScreen); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return (boolean)8;
}
}
MEMSET(pMe->QR_psDecodedText, 0, QR_MAX_DECODE_BUFFER_SIZE);

// 結果フォーマット文字列バッファの確保
if(!pMe->QR_psFormatText ){
pMe->QR_psFormatText = (unsigned char *)MALLOC(QR_MAX_DECODE_BUFFER_SIZE);
if( pMe->QR_psFormatText == NULL ){
if(pWorkarea){ FREE(pWorkarea); }
if(pimg24){ FREE(pimg24); }
if(pimg16){ FREE(pimg16); }
if(pDibScreen){ ReleaseObj((void**)&pDibScreen); }
if(pScreen){ ReleaseObj((void**)&pScreen); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return (boolean)8;
}
}
MEMSET(pMe->QR_psFormatText, 0, QR_MAX_DECODE_BUFFER_SIZE);


52:35
04/09/30 10:54:04
sInfo.tiSize= sizeof(QRDEC_STRING_INFO);// 構造体サイズ
sInfo.tiDecodedBuffer= pMe->QR_psDecodedText;// 結果受取バッファ
sInfo.tiFormatBuffer= pMe->QR_psFormatText;// 結果フォーマットバッファ
sInfo.tiMaxBufferSize= QR_MAX_DECODE_BUFFER_SIZE;// バッファサイズ

// デコードExtensionインスタンスの構築
if ( (ret = ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_QRDEC3GV, (void **)&pQrdec)) != SUCCESS){
if(pScreen){ ReleaseObj((void**)&pScreen); } return 2;
}

// デコードExtension処理領域の問い合わせ
if(!pWorkarea){
lMemoryVecLen = IQRDE3GV_QrdecGetWorkAreaSize(pQrdec);
pWorkarea = MALLOC(lMemoryVecLen * 3);
if(!pWorkarea){ if(pQrdec){ IQRDE3GV_Release(pQrdec); } return 2; }
}

// デコードパラメータのセット
rc = IQRDE3GV_QrdecDecodeSymbolSetParameters(pQrdec, &gImage, &gSymbol, &sInfo, pWorkarea);
if(rc){
if(pWorkarea){ FREE(pWorkarea); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return 2;
}
rc = QRDEC_S_CONTINUE;


53:35
04/09/30 10:54:37
// デコード処理実行
while (rc == QRDEC_S_CONTINUE ){ rc = IQRDE3GV_QrdecDecodeSymbolNextStep(pQrdec, 150, 100, pWorkarea); }

if ( rc == QRDEC_S_OK ){ pMe->QR_lBufferSize = sInfo.tiBufferSize;
}else{ ret = QR_GetErr(rc); }

if(pWorkarea){ FREE(pWorkarea); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }

return (boolean)rc;
}


54:35
04/09/30 10:56:36
/*-------------------------------------------------------------------------------
QR_DecodeFromBmp
QRコード・バーコードデコード処理
IBitmapから直接変換
------------------------------------------------------------------------------- */
static voidQR_DecodeFromBmp( IApplet* pi, IBitmap* pBmp ){
CHelloWorld2* pMe = (CHelloWorld2*)pi;
void*pWorkArea = NULL;
IQrdec3GV*pQrdec = NULL;
intret;
QRDEC_IMAGEimageArea;
QRDEC_SYMBOL_INFOcodeInstructions;
QRDEC_STRING_INFOstringArea;
AEEBitmapInfobi;

if( ( ret = ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_QRDEC3GV, (void **)&pQrdec)) != SUCCESS ){return; }

{
IBITMAP_GetInfo( pBmp, &bi, sizeof(bi));

imageArea.imSize= sizeof(QRDEC_IMAGE);// 構造体サイズ
imageArea.imPixels= (unsigned char*)pBmp;// フレームデータバッファ
imageArea.imWidth= bi.cx;// イメージ幅
imageArea.imHeight= bi.cy;// イメージ高さ
imageArea.imBitCount= 16;// ビットカウント
imageArea.imCompression= QRDEC_BI_RGB;// 圧縮形式
imageArea.imSourceCameraType= QRDEC_IM_DEFAULT;// カメラ情報1
imageArea.imSourceCameraValue= 0;// カメラ情報2


55:35
04/09/30 10:57:21
codeInstructions.siSize= sizeof(QRDEC_SYMBOL_INFO);
codeInstructions.siSymbolType= QRDEC_QR_CODE_M2;
codeInstructions.siQRVersionLow= 0;
codeInstructions.siQRVersionHigh= 0;

stringArea.tiSize= sizeof(QRDEC_STRING_INFO);
stringArea.tiDecodedBuffer= pMe->QR_psDecodedText;
stringArea.tiMaxBufferSize= QR_MAX_DECODE_BUFFER_SIZE;
stringArea.tiFormatBuffer= pMe->QR_psFormatText;

if (pWorkArea == NULL) {
unsigned long MemoryVecLen = IQRDE3GV_QrdecGetWorkAreaSize(pQrdec);
pWorkArea = MALLOC(MemoryVecLen);
}
IQRDE3GV_QrdecDecodeSymbolSetParameters( pQrdec, &imageArea, &codeInstructions, &stringArea, pWorkArea);
}

while (ret == QRDEC_S_CONTINUE ){ ret = IQRDE3GV_QrdecDecodeSymbolNextStep(pQrdec, 150, 100, pWorkArea); }

if ( ret == QRDEC_S_OK ){
DBGPRINTF("○●○ QR(Bmp):SUCCESS ○●○");
pMe->QR_lBufferSize = stringArea.tiBufferSize;
}else{ ret = QR_GetErr(ret); }
if(pWorkArea){ FREE(pWorkArea); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return;
}


56:35
04/09/30 10:58:12
大変長くなってしまって申し訳ありません。
宜しくお願いします。

57:デフォルトの名無しさん
04/09/30 11:30:40
QRはやってないし、わからんが

そらAEECLSID_JPEGを指定したらJPEGが出力
されるがな。
加工したいならRAW出力で出力して、BMPファイルに
すればいいんでねーの?

58:35
04/09/30 13:27:44
>>57
AEECLSID_WINBMPやAEECLSID_NATIVEBMPが設定できなかったので、
とりあえず動かすためにAEECLSID_JPEGを設定していました。
というかCAM_ENCODE_RAWの存在をすっかり忘れていました。
RAW出力早速やってみます。

59:57
04/09/30 14:55:04
>>58
CAM_PARM_VIDEO_ENCODE_LISTでGetParamやれば
サポートフォーマットは取得できる。
まぁ~BMPサポートしているのなんか見たこと
無いけど

とりあえず、RAWはメーカ依存なので絶対とは
いえんけどYUV422で出力されると思われ
# RGBは見たとき無いな・・・あんのかな?

60:デフォルトの名無しさん
04/09/30 16:20:37
とりあえず長いソースを晒すときはテキストでうぷしる
でも守秘義務は守ろうな
晒せる範囲に気をつけれ

でカメラだが
jpg援交画像をimageで取り込み→bitmap化
getフレームのbitmapを直接取り込み
あたりをすればよいかと思われ

61:58
04/09/30 21:22:04
>>59-60
情報提供&忠告有難うございます。
RAW出力でやってみたのですが、やはりうまくいかないようです。

>jpg援交画像をimageで取り込み→bitmap化
>getフレームのbitmapを直接取り込み
サンプルのコードを見る限り、解析するときに
ret32 = IFILE_Read(pFile, (void *)&bmFh, 14);
ret32 = IFILE_Read(pFile, (void *)&bmIh, sizeof(BITMAPINFOHEADER));
で取得した情報を元に16bitに変換してるようなので、
BMP形式でファイルに保存してからじゃないと無理っぽいです。
IBitmapから直接解析しようとすると、
Extensionの構造体(特にQRDEC_IMAGEのimPixels)に何を入れていいかわからない状態です。

62:デフォルトの名無しさん
04/09/30 22:58:44
BREW 上でMINIXをさらにショボくしたようなレベルの簡易OSが作れないかな、
と思っているんですが、ちょっと質問。

1、MMUはイジれますか?第一、そもそもハード的にありますか?
2、少なくとも、Dirty Bitは見たいのですが、可能ですか?
3、例外や割り込みはトラップできますか。とりわけ、ページフォルトは?
4、簡易OS上のアプリからのBREWのAPIコールやライブラリコールをトラップ
(正確には禁止)できますか?

クアルコムは、BREWでJavaVMも書けるよ、と怪気炎を吐いていますので、
このあたりのOSレベルの機能も無理やり開放させる方法があるような気がするのですが、
どうでしょうか。

63:デフォルトの名無しさん
04/10/01 22:07:00
BREW Developers Agreementについて解説してあるサイトとかないですか?
グラントバック条項として

BREWの開発に役立つ特許なら親会社のでも子会社のでもクアルコムに実施料無料で
自由に使わせろって書いてあるように読めるんだけど。
子会社はともかく親会社にそんなこと認めてもらうなんて・・・。

みんなこんな契約そのまま承諾してるのかなあ?

64:デフォルトの名無しさん
04/10/02 01:50:48
>>60
関係ないが
援交っていーぱつ変換でだすなんt

65:デフォルトの名無しさん
04/10/02 03:20:44
>>62

だれか教えて!
とりわけ、
・ページフォルトがトラップできるか
・BREW API/ライブラリへのコールがトラップ(もしくは禁止)できるか
・ダーティービットが見れるか
この三点、よろしくお願いします。

66:デフォルトの名無しさん
04/10/03 23:27:08
うーん。クアルコムのサイトでの検索結果では、
非常にダメっぽいなぁ。mmap() すらないんだもんな。

67:デフォルトの名無しさん
04/10/04 09:24:17
型宣言について聞いてみたい。
BREWでは int16, int32, uint16, uint32 といった型がわざわざtypedefされているが
インターフェイスのヘルプを見ると引数や戻り値に int と書かれているものもある。
みなさんソース書くときにint16とかの記述で統一してますか? それともintも混在で?
「そんなの好きに書けばいいじゃない」って、気にするほどのもんでもないのかな。
(結局はコンパイルでintやlongに置き換わるわけだし)

実は bool型 true, false が
boolean型 TRUE, FALSE (1, 0でdefineされてる)
で定義されてるのもかなりウザイと感じている。
boolean result = (a != b); がエラーになってバカらしいなと…
(BREW的には boolean result = (a != b) ? TRUE : FALSE; )

68:デフォルトの名無しさん
04/10/04 10:17:27
>みなさんソース書くときにint16とかの記述で統一してますか? それともintも混在で?
自分で宣言した変数ではintしか使ってない。

>実は bool型 true, false が
>boolean型 TRUE, FALSE (1, 0でdefineされてる)
>で定義されてるのもかなりウザイと感じている。
同感。すげーウザイ。
他にも、KDDI認証とかマニュアルの不便さとか、挙げればキリがない。

69:デフォルトの名無しさん
04/10/04 10:33:24
BREWは、VC依存でしょうか?
gccでは使用できませんか?

70:デフォルトの名無しさん
04/10/04 11:28:33
 素人なので間違えてたらごめんなさい。

 GNUDEでもできるみたいなんですが、
elf2modが必要で、正式デベロッパーになるか、
auのBREWCPになるか、Visual Studio Addin を入れないといけないみたいですね。

 ところで、Visual Studio Addin入れようとするとエラーになるんですが、
やっぱりVisual Studioがないといけないんでしょうか。
String NO_VS_ERR_MSG1 was not found in string table.って出ます。

71:69
04/10/04 11:35:10
>>69の質問は、gccで作成されたアプリの資源が生かされるのかどうかの為に聞きました。
よろしく、お願いします。m(. .)m

72:69
04/10/04 11:38:37
>>70
すいません。レスを確認しませんでした。
>GNUDEでもできるみたいなんですが、
>elf2modが必要で、正式デベロッパーになるか、
>auのBREWCPになるか、Visual Studio Addin を入れないといけないみたいですね。
なるほど、そうなんですか。gccでも可能ってことですね。
ありがとうございました。

73:デフォルトの名無しさん
04/10/04 17:19:33
>>69-72

エミュレータ用のDLLを生成するには、Visual C++相当のコンパイラが必要。
gccがVCと互換性のあるDLLを吐いてくれるのかどうかは知らん。

実機向けにビルドするならgccで問題ないが、>>70にあるとおり、Visual Studioが
入っていないとgcc用のelf2modがインストールできない。

まあ、gccベースのアプリをBREW化するのはコンパイラ以外の問題のほうが多いと思うが...
(グローバル変数、Cの標準関数、浮動小数点演算が全部NG。
C++の機能も制限あり...これはgccだと回避できるのかな?
100%イベントドリブン+シングルスレッドな構造にそのまま移植できるソースなんて
そうないだろうし。)

74:デフォルトの名無しさん
04/10/04 22:41:55
まあ武龍の売りはイベントドンブリとかうっへり言語じゃなくて
高速で動く高性能チップと
それようのネットリワーク環境が
ワンセットになっている事らしいから


まあチップの中の人とか小人さんがいくら優秀でも
それに命令を渡すため書類の書き方やら手続きやら用語やらがあれだったら
中の人やら小人さんも働きようがないゃな

75:949
04/10/05 14:12:49
質問が御座います。

今朝端末でアプリを立ち上げた所、
「エラーが発生しました(004)」と表示され、
製作中の全てのアプリで同じ現象が
発生している状態です。(⊃△T)
※昨日まで動作していました

エラー004の内容についてお知りの方、
助言していただけないでしょうか?

76:デフォルトの名無しさん
04/10/05 14:21:56
>>75
SIGファイルの期限切れ

77:75
04/10/05 14:30:33
>SIGファイルの期限切れ
∑(゚△゚;)
クライアント様に新しいの用意して
もらいまふ…。_| ̄|○|||

>>76
早急なレスありがとうございました。

78:デフォルトの名無しさん
04/10/05 16:14:22
_| ̄|〇.oO( IBITMAP_Release2回やらんとメモリ解放されない・・・・)
原因が解かりません。
まさか仕様って訳じゃ無いですよ・・・ね?
一応解放されるけどなんか気持ち悪いです。
どなたか解決法知ってましたら助けてくださぃ。

79:78
04/10/05 16:24:52
自己解決しました。
2次配列で取得してました(;´Д⊂)

80:デフォルトの名無しさん
04/10/05 17:36:48
>>77
SIGは3ヶ月で切れるから気をつけれ

81:デフォルトの名無しさん
04/10/06 14:26:42
前スレでGCCでのビルドについて質問した者です。
makefileアップしてもらってもうまく行かずに悩んでいたが、>>76ではたと気づいたよ。
sig作り直したらうまく行きました(;°д°)

ついでにC++でもHelloWorldレベルでの確認までできたのでフォーラムのほうにアップしますた。
URLリンク(brewforums.qualcomm.com)

みんなありがとう!(^^)!

82:デフォルトの名無しさん
04/10/06 23:49:26
武龍で強制的にスリープさせる方法なんてあんのかね?

83:デフォルトの名無しさん
04/10/07 01:17:05
>>81
お~ま~え~は~ア~ホ~か~



まあ、実際良くあることだけどな

84:デフォルトの名無しさん
04/10/07 11:27:20
BREWで動く関数ポインタの使い方を教えていただけませんか?
下のに書いた感じで、エミュでは問題なく動いてるんですが、
armコンパイルするとエラーが(⊃д⊂)

switch caseや if else 多用すれば良いとも言うけど…

//キーイベントが発生したら、本関数をコール
KeyEvent(AEEApplet *a, uint16 wParam)
{
void (*key[])(AEEApplet*, uint16)={
KeyEvent_0, //0
KeyEvent_1, //1
KeyEvent_2, //2

};

//共通処理
key[a->JumpNo]; //各関数へジャンプ
};

void KyeEvent_0(AEEApplet *a, uint16 wParam)
{
//個別処理
}

void KyeEvent_1(AEEApplet *a, uint16 wParam)
{
//個別処理
}
//以下略


85:デフォルトの名無しさん
04/10/07 22:23:24
リンク時にはまだ関数のアドレスが確定してないから、変数の初期値として
関数のアドレスは指定できないよ。
実行しはじめてからでないと。

86:84
04/10/08 00:14:02
なるほど…
つまるところ関数ポインタをメンバ構造体へ突っ込んどいて、
動的に初期化すればOKて事ですか・・?

うーん、そこまでやるならif elseでズラズラ書いた方が良いかなぁ…
ひとまずやってみます。ありがとうございました。


87:デフォルトの名無しさん
04/10/08 07:13:45
>>85
それじゃぁ呼び出しもできないね。

>>86
「なるほど」じゃねぇだろ。

88:84
04/10/08 08:52:35
armコンパイル時にリンクでエラーが出てたと思ったので、
納得してしまったんでつが…

じゃぁどーすりゃいいんだyp!ヽ(`Д´)ノ


89:デフォルトの名無しさん
04/10/08 08:55:28
>>88
「思った」ってなんだよ?
エラーでたならエラーメッセージ貼って質問するのが基本なわけだが、できないのか?

90:デフォルトの名無しさん
04/10/08 09:11:51
>>84
>key[a->JumpNo]; //各関数へジャンプ

これに引数は書かないのか?
(*key[a->JumpNo])(a, wParam); ではダメ?

ちなみに関数ポインタは実機でも使えるよ。
リンクも通るし、できた mod もちゃんと動く。
ただ、前の開発では配列にしたら何故かダメだった。
調べるのもめんどくさいので switch で切り分けた (´A`)

91:デフォルトの名無しさん
04/10/08 10:14:34
グローバルなポインタの配列?は出来ないくさい。
テーブルのテーブルとかすると叱られた。


92:デフォルトの名無しさん
04/10/08 10:59:39
なんかBREWの仕様もさながら
ARMコンパイラが腐ってるのが苦労の原因に見える……外から見てると

93:デフォルトの名無しさん
04/10/08 11:56:36
質問です。

通信処理を行った後、少しの間動作が遅くなる
といった現象が起きているのです。
どうもIWEB_GetResponse使った時点から
遅くなってる様なのですが、
同じ様な現象が起こった方アドバイスいただけませんか?

ちなみにソースはこんな感じ↓
URLリンク(venus.aez.jp)

SDKのサンプル元にしてます。
よろしくお願い致します。

94:デフォルトの名無しさん
04/10/08 15:09:39
>>93
とりあえず、ぱっと見の突込み所(遅くなる原因かはわからないけど)

なんでデータ受信時の再読み込み系でCALLBACK_Initを
何回もやっているの?必要だっけか?


たまにしかアクセス行かないアプリなら別だけど
IWebをリクエスト毎に生成するのは何故?
IWebは基本的に使いまわすもの


95:デフォルトの名無しさん
04/10/08 17:18:38
>>94
CALLBACK_Initについてはコールバック設定前に行うっていうのはどっかに書いてあったはず・・・。

あとIWebについてだけど
あれって使いまわせないと思うんだが?
IWebはIWEB_Releaseを行わないと切断できないし。

ついでに>>93については分からないなぁ・・・。
俺のときはメモリを細かく取ってたら遅くなったけど。

96:デフォルトの名無しさん
04/10/09 00:41:23
>>91
constつけてないだろ。

97:デフォルトの名無しさん
04/10/09 23:48:57
ラボで貸してくれるという評価ボードって何ができるの?
ICEつなげてソースデバッグとかできるとありがたいんだが・・・・

98:デフォルトの名無しさん
04/10/11 12:26:02
MSのeMbedded VC++4.0でBREW用バイナリは出来ないのかなぁ・・・。

99:デフォルトの名無しさん
04/10/12 19:13:16
J2Bトランスレータってどうしたんでしょうね。
10月から始まるって話でしたよね。

100:デフォルトの名無しさん
04/10/12 20:11:31
Javaに詳しいトランスレーター用の中の人が思ったより集まらなかったのでは?
どうせ家内製手工業だろうし

101:デフォルトの名無しさん
04/10/13 00:47:01
十数秒で変換って書いてあるから、手作業はほとんどないと思いますが、
やっぱりあんまり期待できないですね。

102:デフォルトの名無しさん
04/10/13 01:20:38
BREW開発セミナー
URLリンク(www.staffnet.co.jp)

103:デフォルトの名無しさん
04/10/15 09:18:35
ぶりゅっ

104:デフォルトの名無しさん
04/10/15 14:46:41
はじめまして。

質問なのですが、機種ごとに違う、画面の大きさを取得できる関数が
あったとおもうのですが。。なんでしたっけ。

それと、横幅は240で固定なのでしょうか。縦は違う??

105:デフォルトの名無しさん
04/10/15 15:24:27
>>104
画面の大きさはISHELL_GetDeviceInfoで取得したAEEDeviceInfo構造体に入ってる。
これで機種ごとにサイズを見てみれ。

106:93
04/10/16 21:30:20
>>94,95
レスありがとうございます。
試行錯誤しておりますが、現状直らず…。_| ̄|○|||

現状わかった事として
通信終了後(成功失敗に関わらず)、
約1分程で動作速度が元に戻る。(T△T;)
CallBack、タイムアウトのタイマーは開放してるんで、
それ系の不具合では無いと思うのですが…。

引き続き情報お待ちしております…。m(_ _)m

107:デフォルトの名無しさん
04/10/16 21:49:15
通信とは関係ないけど、
BREWエミュで文字列リソースだけ読ませるだけの
アプリ作って起動したらやたらとフレームが落ちて重くなったことがあった。
そこで画像も読ませたりすると普通の速度に戻ったりとか。

原因は不明・・スマン

108:デフォルトの名無しさん
04/10/16 22:19:16
>>108
>約1分程で動作速度が元に戻る。(T△T;)
見事に自動切断(っていうのか?)の時間レスね

なんか解放し忘れてんのかね


109:デフォルトの名無しさん
04/10/18 06:45:07
ところでenraタソはどこ行きましたか?

110:デフォルトの名無しさん
04/10/18 23:57:34
pngをメモリから読めますか?APIが見つかりません。

111:デフォルトの名無しさん
04/10/19 10:36:37
>>110
メモリから読むなら、IMemAStream -> IAStream
でIIMAGEにストリーム設定すればいけんでない?

112:デフォルトの名無しさん
04/10/19 12:38:15
JavaとBREW:
混同してはならない2つの技術の性格
URLリンク(www.mainichi-msn.co.jp)
■■将来は「Java on BREW」か


113:110
04/10/19 20:57:46
>>111 できました。ありがとうございます。

114:デフォルトの名無しさん
04/10/19 23:42:12
とりあえずンニーでカメラ動かそうとすると大変だな

ところでカメラエンコードが失敗したときって何で判定すんの?

115:デフォルトの名無しさん
04/10/20 13:04:42
>114
よくわからんけど、戻り値を調べるなりできたファイルをチェックするなりすればいいんでは?

116:デフォルトの名無しさん
04/10/20 18:56:17
エミュレータのソフトキーはキーボードから操作できないのでしょうか。
[*]キーはテンキーの'*'
[#]キーはテンキーの'.'
[クリア]キーはBS
[電源]キーはESC
に対応してました。

117:デフォルトの名無しさん
04/10/21 18:02:00
HTTP接続した後、1分ぐらい別の作業(画面更新とか)したあとに
再度HTTP接続すると、毎回Response code -1200とか返るんですが

これはエミュだから?実機でもそう?もしくはサーバー?

118:デフォルトの名無しさん
04/10/21 19:02:04
ファイルの読み書きなんですけど、
実機ではうまく動いているのにシミュレータでは
IFile_Writeの戻り値が0になってしまいます。
どぉすればいいですかね?
ちなみにIFILEMGR_GetLastErrorの戻り値はEFSFULLでした。
ファイルシステムに空きがないという事だったのですが、どういう意味でしょうか?
またこの場合、どのように対処すればいいのでしょうか?

119:デフォルトの名無しさん
04/10/21 19:12:49
>>118
URLリンク(brewforums.qualcomm.com)

120:デフォルトの名無しさん
04/10/21 22:54:14
1ヶ月も前の話になるけど、ゲームショウで
BREWのゲームって出てなかったよな。
KDDIのブースでもマルチマッチングのPS2のゲームがあっただけだし…

121:118
04/10/22 10:18:23
>>119
有難うございました!無事解決しました。

122:デフォルトの名無しさん
04/10/22 10:42:12
先日BREWをはじめました。
CGI連携について教えてください。
IWebインターフェイスでCGIに連携する時
仕様書のサンプルのようにGetLineで取得すると、テキストデータ以外がとれません。
バイナリ-データを取得するにはどうすればよいのでしょうか?
GetLineでは取れないのでしょうか?

123:デフォルトの名無しさん
04/10/22 11:11:12
>>122
ISOURCE_Read

WebRespInfoのpisMessageはISource
のインスタンスだべ

サンプルにあったような・・

124:デフォルトの名無しさん
04/10/22 11:32:06
ありゃ、漏れIPEEK_Read()でやってたよ>バイナリの読み込み
まぁ動いてるからいいんかな・・・


125:122
04/10/22 12:53:34
う~ん、うまくとれませんorz
CGIから
Print"abc";
なら取れるのに、
print pack("c", $status);
だと
とれません...
なにか必要な設定などありますか?



126:デフォルトの名無しさん
04/10/22 13:24:49
>>125
HTTPヘッダとボディのデータを一度モニタした方が
良いんでは?

127:123
04/10/22 14:02:35
>>125
ごめん。ファイルリソース取得はそれでOK
だったけど、昔cgiでバイナリ出力したときは
漏れもエラーになってた気がする orz

BREW側のHTTPヘッダの解析でまずいことでもして
るのかね?


公式で聞いた方がいいかも

128:デフォルトの名無しさん
04/10/24 01:05:29
BREWプログラミング実践バイブル
のサンプルプログラムなんですが、エミュレータで動作確認はできないんですかね?
やっぱりdllファイルがないとだめですよね。dllファイルを作るまでの知識がないもんで・・

129:デフォルトの名無しさん
04/10/24 01:36:07
何がしたいのかはよくわからないけど、
アプリが無いとエミュレータで動作確認はできないねぇ・・・

そういえば、開発者で実戦バイブル買った人っているのかな?

130:デフォルトの名無しさん
04/10/25 01:20:04
>>129
サンプルをDLしたんですけど、エミュレータで確認したいんですよぉ。
・゜゜・(≧д≦)・゜゜・。エーン!!
DLしたファイルの中にはmif、bid、ソースファイルなどはあるのですが、dllだけないんです。
vc++でコンパイルしてdllを生成するまでの手順がわからないので、困っています。
sdk ver2.1を使っています。
どなたか教えてください。


131:デフォルトの名無しさん
04/10/25 01:50:02
 ARMコンパイラーはあるんですか?
 自分もサンプルをエミュで動かしてみたいんですが、
ARMコンパイラーないし、Visual Studioもないし‥。
開発だけなら無料でできるって聞いたのに・・・。orz

132:デフォルトの名無しさん
04/10/25 04:09:19
>>130
dllの作り方はBREWと関係なしにVC++のマニュアルとか検索で調べるとか。

>>131
エミュレータで動かすならARMコンパイラは不要。
VisualStudioでなくてもVisualC++.NETでも可。Cのソースからdllが作成できればいい。
無料でできるのはBREW SDKのインストール。

133:131
04/10/25 05:45:31
>>132
すいません。根本的なところで勘違いしてたみたいですね。
ありがとうございました。やってみます。


134:デフォルトの名無しさん
04/10/25 06:05:58
>>132
 ちゃんと動きました!ありがとうございました!


135:デフォルトの名無しさん
04/10/25 11:13:26
>>134
エミュレータで、確認できたんですか?やっぱりdllを生成してですか?

136:131
04/10/25 11:45:15
エミュで確認できましたよ。dll作りました。
FakeRPGのdllのサイズ400kbもありますけどね。

137:デフォルトの名無しさん
04/10/25 11:46:50
「BREWプログラミング実践バイブル」にSDKのインストール方法から、
VC++を使ってdllの作成方法にエミュの起動方法まで載ってるのに、
喪前は一体何を聞きたいんだ?


138:デフォルトの名無しさん
04/10/25 14:03:36
BREWにて
Graphics2.setRenderMode()
みたいなことができる関数ってあるんでしょうか?

javaアプリの移植は、結構大変ですねぇ

139:デフォルトの名無しさん
04/10/25 16:32:49
BREWアプリのプログラム領域とデータ領域ってどのくらいの大きさなんですか?
ググってもそれらしき情報が見当たりません・・
DLできる最大のデータ量が600KBみたいな事は書いてあったんですが。

140:デフォルトの名無しさん
04/10/25 16:52:57
>>139
600KBってのはCDMA 1X WINのみ。
それでQVGAの機種が300KBだっけ?
その他はどうだったか忘れた。

141:デフォルトの名無しさん
04/10/25 17:15:14
>>139
端末仕様書とかはKDDIのConfidential扱いだから
ググっても見つからないかも。

142:デフォルトの名無しさん
04/10/25 19:41:59
>>137
たぶん、本を買ったんじゃなくて、
ネットで公開されてるサンプルプログラムだけを落とした方だと思います。
自分もそうなので。

143:デフォルトの名無しさん
04/10/25 21:41:48
半透明ってできないの?
JAVAのPhase3の時はスプライトで半透明をつかってフェードしたので
同じことやろうと思って調べてんだけど・・・
ISpriteにもないみたい・・・
だれかヒントください

144:デフォルトの名無しさん
04/10/26 00:30:25
残念ながら、半透明は非サポート。
将来的にサポートが予定されているんだっけかな・・?

どうしてもやりたいなら、DIB直接弄るしかないんでないの?


145:デフォルトの名無しさん
04/10/26 00:47:35
最近アホが多いな

146:デフォルトの名無しさん
04/10/26 12:08:31
とりあえずソースを複数に分けるときってどんな風にやってる?

グローバル変数が使えないから従来のCの様な分け方できないもんな

147:デフォルトの名無しさん
04/10/26 13:17:53
>>139
BREWはmodファイルもヒープに格納される。
だから、プログラムで使用するヒープ容量とmodサイズがヒープ容量を超えないようにする。
ちなみに、フレームワークでもヒープを消費するようで起動時点で端末によって使用済みヒープ容量が結構違う。
この辺は実機で確認していくしかないでしょ。
#端末のヒープ容量はCP登録していれば一部をQのデベロッパーサイトから見れる
#載っていないやつはメーカに問い合わせろとか書いてある

ファイルシステム上のサイズのことなら、BREW上での制限は特に無い。
容量使えるだけ使える。
ただ、キャリアのガイドラインがあるから>>140の言っているような制限がある。
KDDIの制限ならKDDIのサイトに詳しい資料があるね。ちょっと古いけど。

>>146
普通のCでもグローバル変数ばしばし使っているようじゃスパゲッティーになるわけだが。
BREWの場合はIApplet構造体をグローバルのように使うのが常道。
#定期的にカーネルへ処理を戻さないといけないから恒常的にデータを保存できるのはここだけ
漏れはC++のフレームワーク作っちゃって、メインクラスのメンバでデータ保存してるけどね。


148:143
04/10/26 21:31:30
>>144
thx

IDIBでやってみる…

149:デフォルトの名無しさん
04/10/27 11:07:38
>>136
>FakeRPGのdllのサイズ400kbもありますけどね。

工エェ!!!

150:143
04/10/27 22:38:24
bてビットかなぁ

151:デフォルトの名無しさん
04/10/27 22:38:58
しまった名前が残ってた

これでよし

152:デフォルトの名無しさん
04/10/27 23:39:30
でもとりあえずBREWはお糞さまだよな(挨拶)

153:デフォルトの名無しさん
04/10/28 03:00:09
>>149
何も考えずに突っ込んでそのままビルドしたらそうなりました。

154:デフォルトの名無しさん
04/10/28 04:11:35
dllはエミュレータ用で、これはでかくなるよ。数百KBytesとか普通。
実機用には別にコンパイルしたモジュールを使う。それはdllより遙かに小さくなる。

155:デフォルトの名無しさん
04/10/28 05:07:03
勉強になりました。
実機のエミュ出て欲しいですね。
出ても金取りそうだけど・・。

156:デフォルトの名無しさん
04/10/28 08:33:55
最近初心者質問スレと化して来たなぁ・・・


>>155
とりあえずCP契約すれば、エミュレータ用のデバイスファイルは一通り手に入る。
それが嫌ならエミュレータについてるデバイスコンフィギュレータで作るって手もあったと思った。

157:デフォルトの名無しさん
04/10/28 10:56:58
>実機(用コードが動く)エミュ
無理。
つか、作ったとしても全く意味ないし。

158:デフォルトの名無しさん
04/10/28 11:03:09
SDKダウンロードしてたらエラーでとまった。
サーバのメンテナンスで打ち切られたようだ。   sdjkgsd@ふじこs

159:デフォルトの名無しさん
04/10/28 13:20:56
ふじこの作り方さえ満足に出来ないなんて…終わっとるなw

160:デフォルトの名無しさん
04/10/28 18:27:59
spfファイルをbarに放り込んでリソースからphraseを使ってるんだけど、
AEEMediaData.pDataをFREEで開放しようとしたら
duplicate free ~~~ と メモリを二重開放していると怒られました。
やり方は
BREWJAPAN.comのTechnicalTipsに載ってた方法を参考にしたんですが・・・
かといって開放しないとメモリリークになるし、もうどうしたらいいかわかりません(´Д⊂、


161:デフォルトの名無しさん
04/10/28 21:24:12
音の開放のときってbrewのバージョン(2.0とか2.1とか)で違うって
そのTipsのに載ってなかったっけ?バージョン書いたほうがいいよ

162:160
04/10/28 22:31:15
バージョンは2.1です。書き忘れてました

163:デフォルトの名無しさん
04/10/28 22:59:32
>>160
俺はお前を知っている。


164:デフォルトの名無しさん
04/10/29 15:27:26
このTipに書いてあるのはIMediaインターフェースの開放に関する事ですよね。(23.3)
俺が言いたいのはそれの事じゃないです。
とりあえず読込・MediaDataのセット・開放の部分のソース晒してみます。
/*アプレット構造体 */
typedef struct _App{
AEEApplet a;
IMedia* media[3];
AEEMediaData mdata[25];
}App


/* IMediaインターフェースの作成 */
for(j = 0; j < 3; j++){
i = ISHELL_CreateInstance(shell, AEECLSID_MEDIAPHR, (void*)&app->media[j]);
if(app->media == NULL){
DBGPRINTF("failed");
}
}

/* リソースファイルからのspfファイルの読込 */
for(k = 0; k < 25; k++){
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE, (void*)-1, &dwSize);
buf = ISHELL_LoadResData(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE);
offset = (uint32)buf[0];
dwSize = dwSize - offset;
app->mdata[k].clsData = MMD_BUFFER;
app->mdata[k].pData = buf + offset;
app->mdata[k].dwSize = dwSize;
}


165:160
04/10/29 15:37:18
/* メディアデータのセット
 再生する音によってセットするデータの数が異なります。 */
for(i = 0; i < app->soundElements[no]; i++){
IMEDIA_SetMediaData(app->media[i], &app->mdata[sindex + i]);
IMEDIA_RegisterNotify(app->media[i], (PFNMEDIANOTIFY)MediaNotify, app);
}
for(i = 0; i < app->soundElements[no]; i++){
int ret;
ret = IMEDIA_Play(app->media[i]);
if(ret == SUCCESS){
DBGPRINTF("########### PLAY SUCCESS ##############");
}
else{
DBGPRINTF("########### PLAY ERROR ##############");
}
}

/* 開放 */
for(i = 0; i < 3; i++){
if(app->media[i] != NULL){
IMEDIA_Stop(app->media[i]);
IMEDIA_Release(app->media[i]);
}
}

for(i = 0; i < 25; i++){
if(app->mdata[i].pData != NULL){
FREE(app->mdata[i].pData);      /*ここでDupricate Freeエラーが発生*/
app->mdata[i].pData = NULL;
}
}

166:160
04/10/29 15:38:05
あと、この質問とは別件ですが、>>164
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE, (void*)-1, &dwSize);や
buf = ISHELL_LoadResData(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE);で
intからunsigned shortに変換しました~~のwarningが出ます。kはuint16にしてあるので、型は間違っては無いと思うのですが。
定数を足すとダメなのかな?エミュでは問題なく動きますが、ARMには通りそうにないんで直したいんですが、どうしたらいいでしょうか?


167:デフォルトの名無しさん
04/10/29 17:50:48
>>165
俺はFREEでなく
ISHELL_FreeResDataを使っている

>>166
型はint16じゃないの?

168:160
04/10/29 18:05:53
>>167
ISHELL_FreeResData使いましたが同じ結果になりましたorz
後、型は確かにint16でしたね。でもkをint16に直しても結果は同じでした・・・


169:デフォルトの名無しさん
04/10/29 18:17:33
BREWユザーズガイド読んだら、
ARMコンパイラ使用上の注意として
条件文で変数を指定すんな!って書いてあるんだが、
もしかして条件式に変数を書いちゃいけないんだろうか?

170:中の人
04/10/29 19:51:14
>>164
とりあえず、bufのポインタ自体を保持しておかないと正しく開放できないですね。
duplicate freeって、FREE()呼んだ時点じゃなく、アプリ終了時とかに表示されませんか?
確保したのはbuf(サイズはdwSize)なのに、mdata.pDataはbuf+offset(サイズはdwSize-offset)を
指しているので、FREE(pData)を呼んでもbuf自体は開放されてないです。
なので、「アプリ終了時に未開放のメモリが残る→実行環境がbufを開放する→bufとpDataの
重複する領域が二重開放になる」という現象が発生します。
あと、ISHELL_FreeResDataを使うのが正しいです。
(わかりにくい説明ですみません)
結論は「pDataじゃなくbufに対してISHELL_FreeResData()使ってください」

>>169
ARMのコンパイラは、

if(nRet = IMENUCTL_HandleEvent(pme->pIMenu, eCode, wParam, dwParam))
{
/* MenuCtlがイベントを処理したっぽい */
return TRUE;
}

みたいなコードを書くと、「代入の結果を条件判断に使ってるよ?」と警告をはきます。
(代入じゃなく比較したかったんじゃないの? と言いたいらしい)
warningが溜まりすぎると「too many warning」とその時点でエラー扱いに
なってしまう(コンパイルできない)ので、条件文の中で代入を使わないほうが良いです。
こう書いたからといって危険なバイナリが出来るわけではないですから、
コンパイルさえ通ればこう書いても問題ありません。

171:中の人
04/10/29 20:05:59
あ、FREE(pData)呼んだ時点で、pDataとbufが重複してるから
二重開放エラーになるんですね

172:デフォルトの名無しさん
04/10/29 21:38:14
>>165
単純に解放処理の順番がまずいだけじゃないの?
app->media[i]って構造体を解放してから
そのメンバapp->mdata[i].pDataを解放してるようだが。
逆にしてみたらどうか。

/* 開放 */
for(i = 0; i < 25; i++){
if(app->mdata[i].pData != NULL){
FREE(app->mdata[i].pData);      /*ここでDupricate Freeエラーが発生*/
app->mdata[i].pData = NULL;
}
}

for(i = 0; i < 3; i++){
if(app->media[i] != NULL){
IMEDIA_Stop(app->media[i]);
IMEDIA_Release(app->media[i]);
}
}

173:デフォルトの名無しさん
04/10/29 21:40:31
>>166
リソースのIDを計算で与えてることがそもそも間違い。

'SE_1 + k'と書いてるところの引数はリソースのIDを指定するものだが、
リソースのIDはあくまでラベル的に扱い、数値として見てはいけない。
計算後のIDがリソースファイルに存在する保障はないし、リソースファイル
の作り方次第ではIDが連番で割り振られるわけでもないから。

何が何でもIDを計算で渡すというなら明示的にキャストすれば
とりあえずコンパイルは通る。

174:172
04/10/29 21:49:30
ごめん。>>164のソースよく読んでなかった。
>>170-171に同意ってことで。

175:デフォルトの名無しさん
04/10/29 22:40:57
俺は
const int16 idid[3] = {ID_AAA,ID_BBB,ID_CCC};
とかやってる

>>164でいうと
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE,idid[k], RESTYPE_IMAGE, (void*)-1, &dwSize);

とゆーかんじだ。参考にならなかったらごめんな!

176:160
04/10/29 23:37:01
>>170-175
ありがとうございました。大変参考になりました!
とはいっても試すのは週明けになるのですが(汗

C言語は多少勉強した程度で、Java→BREWの移植をしてるんですが、
なかなか上手く進まなくて大変ですね。
最初の最速の見積もりの半分くらいしか行きやしない(´Д⊂、

177:デフォルトの名無しさん
04/10/30 00:10:52
とりあえず
byte *a;

a = MALLOC(1024*10241024*1204*1024);

178:デフォルトの名無しさん
04/10/30 01:21:35
FREE(>>177);


179:デフォルトの名無しさん
04/10/30 02:28:35
while(>>177 != deth){
  wark(app, >>177);
}

180:デフォルトの名無しさん
04/10/30 02:36:28
FREE(>>177);
*>>177=0;

181:デフォルトの名無しさん
04/10/30 14:01:01
>>179
× deth
○ death

182:デフォルトの名無しさん
04/10/30 15:55:18
>>179
X wark
○ work

183:169
04/10/30 17:33:26
>>170
なるほど、そういう意味でしたか。
納得しました。ありがとうございます。

184:デフォルトの名無しさん
04/10/31 00:43:35
すみません、初心者ですが教えてください。
>>180はガッするべきですか?


185:デフォルトの名無しさん
04/10/31 09:49:50
ヌルポ

186:デフォルトの名無しさん
04/10/31 13:01:57
>>185
static const AECHAR gaxtu[] = {'ガ','ッ','\0'};

187:デフォルトの名無しさん
04/10/31 16:18:33
ちと端末に関して質問。
BREW機で、扱える画像ファイルの解像度制限ってある?

JAVA機だと、VRAMの都合最大320*320ピクセル超えると
止まる機種があるらしいって話を聞いたんだが…

全部VRAMなんて使ってなさそうだから問題無いような気もするんだが…
KDDI相手に質問したい場合、キャリア通さないといけないんで面倒なのよ(ノД`)


188:デフォルトの名無しさん
04/10/31 23:01:44
舞竜はメモリの許す限り読み込めるんじゃねーの

いや知らんけど

189:187
04/11/01 14:15:01
うーん、質問が悪かったかな…
パーツの画像をひとつにまとめるか、複数ファイルにするかってトコで、
サイズの制限があるなら画像を分割しないとね、って話になっててさ。
ファイルが分割されるとソース変更が必要だし、リソースサイズも増えるから
できればファイルを結合できれば助かるんだが。

質問を変えて。
最大何ピクセルくらいの画像を実機に読み込ませた事有りますか?

一応漏れは480×36のBMPをIDISPLAY_CreateDIBitmap()で生成させて、
動作するまでは確認した事があるんだが…
多分メインメモリに展開してコピペしてるだけだろうからVRAMの制限はなく、
>>188と同じ事思っているんだが、
『思う』ってだけじゃ誰も納得してくれねーし
手元にS5505SAしかねーしOrz


190:デフォルトの名無しさん
04/11/01 16:38:02
武龍3.0って蛇場仮想マシーンは搭載されるんですか。

191:デフォルトの名無しさん
04/11/01 16:44:21
>>189
画像と言ってもBMPとかPNGとかで変わってくるわけで。
さらにIImage/IBitmapのどっちを使うとかそのへんも。

ちなみにIImageのデコードはヒープ使うと明言されてるし、COMVERTBMPもヒープを消費する
のは確認しているのでおそらくヒープが足りてれば制限はないとおもうけど。
漏れはQVGAフルスクリーンサイズのBMP・PNG・JPEGをリソースから読んで描画するとこまではやったことある。
#端末はKDDIのQVGA端末数機種

でかい画像をそのまま描画するっていうとまた話は変わってくるんだろうけどね。
#描画時には制限があるかもしれない

192:デフォルトの名無しさん
04/11/01 18:26:19
次のようなソースをコンパイルするとエラーが出る。
static void mytest(MyApplet *ap) {
DBGPRINTF("mytest");
IShell *sh = ap->a.m_pIShell;
}

error: C2275:'IShell' : typedef識別子に、クラス メンバ アクセス演算子(->)を使用しました。
aee.h(294): 'IShell'の宣言を確認してください。

だけど、
IShell *sh = ap->a.m_pIShell;
DBGPRINTF("mytest");
の順に変更するとエラーでない。
なぜでしょうか?

ちなみにincludeしてるのは、AEEModGen.h AEEAppGen.h AEEShell.h AEEFile.h AEENet.h myapp.bid AEEStdLib.h です。

193:デフォルトの名無しさん
04/11/01 18:30:41
>>192
C言語ではローカル変数は最初にしか宣言できないぞー。

194:192
04/11/01 18:40:32
>>193
あなるほど!
VC++っていうからC++もOKかと思ったけど、
ARMのコンパイラのこと考えるとC++ダメなんだな。
早速の指摘ありがとう

195:192
04/11/01 18:45:33
BREWのソースのテンプレートのコメントが//だったんで
すっかりC++が使えるものと勘違いしてました。

196:デフォルトの名無しさん
04/11/01 19:29:13
いや、BREWはC++でも開発できるが。

197:192
04/11/01 21:21:34
>>196
ARMのコンパイラC++スタイルでもOKということか?

198:196
04/11/01 21:25:02
俺はg++使ってるからなぁ…。
ARMコンパイラは上司に触らせてもらってないから何とも。
GCCで十分というウワサ。

199:187
04/11/01 21:50:46
>>191
基本はpngをIImageで開いてる。
IBitmapもIImageも、DIBに展開してメモリに確保している点は共通処理だったと思うから、
どっち使っても同じじゃないかなーと思ってるんだが。

ひとまず画面サイズはokね、サンクス!

それにしてもpngの展開遅いね…
開きっぱなしで使うもんだから、メモリの管理面倒でつよ


200:デフォルトの名無しさん
04/11/01 22:01:44
//
のコメントだと
//表
でエラーになるのがムカツク
/*表*/
ならOKだったような気がする・・・

>>199
png遅い?
おいらはとくに困ってないけど、まあ作るものによって違うんかなあ

201:デフォルトの名無しさん
04/11/01 22:54:34
画像のサイズは開発サイトのFAQを見れ。
すごいデカイとはいえ制限がある機種がある。

png展開が遅いのがダメってなら自力で圧縮するしか無いかな。

//表[改行]が行末\結合でダメなら、幸いにしてmakefile経由なんだから
他のコンパイラとかでプリプロセスだけ通したら?

//コメントのスタイルはC99から標準だっけか。
かといってARMコンパイラはC99でもなんでもないけど。

gcc使うとコードがでかくなるって話を以前ココで聞いたけど、
--ffunction-sections とか --gc-sections とか使ってもダメなの?
そもそも使えるのかな

202:デフォルトの名無しさん
04/11/02 00:47:12
>>201
>--ffunction-sections とか --gc-sections とか使ってもダメなの?
>そもそも使えるのかな
減らんです。
有効なら検証提出もGCCで行くんだが。

203:デフォルトの名無しさん
04/11/02 06:32:48
>>199
JPEG を使っていると png は一瞬に感じてしまふ。
しかし、S の端末は JPEG 展開にメモリ消費しすぎだな。

204:デフォルトの名無しさん
04/11/02 15:29:01
ずっとRVCT使ってたんだけど、いい加減コンパイルごとに担当者にソース提出するのメン毒なってきたからgccに移行しようかと思う今日この頃。
ところで、STLが使いたいんでSTLportをBREWに移植しようと思ってるんだけど、ソース改変の前にmakefile書くのがマンドクサ。
URLリンク(www.stlport.org)

205:デフォルトの名無しさん
04/11/02 16:24:03
>>204
後で後悔しないように気を付けれ

206:204
04/11/02 21:02:47
くそー。STL使うとBREWelf2modがエラー起こす。
STLが使いたいのに。むしろSTL使わなければとりあえず既存のコードが問題なく動く。

----------------------------------------
C:\PROGRA~1\BREWAD~1\common\bin\BREWelf2mod.exe my_app.elf my_app.mod
Unknown section name ".gcc_except_table]:"
NMAKE : fatal error U1077: 'C:\PROGRA~1\BREWAD~1\common\bin\BREWelf2mod.exe' : リターン コード '0x1'
Stop.
ツールは次のコードを返しました: 0
----------------------------------------

207:204
04/11/02 21:06:44
とりあえず、英語フォーラムにお住まいのエロい人がずばっと解決してくれるのを待つか。。。
URLリンク(brewforums.qualcomm.com)

208:デフォルトの名無しさん
04/11/03 10:44:30
会社名(というか大学名)をちゃんと入れたけどSDKダウンページのInstallを押すと
SDK ACCESS ERROR言われる。゜(゚´Д`゚)゜。

Release NoteやらUpdateは落とせるのに何故…

209:デフォルトの名無しさん
04/11/03 10:58:37
>>208
ブラウザの設定じゃないの? 同じような質問が過去レスにたくさんあったよ

210:208
04/11/03 13:53:24
>>209
ブラウザはIE6で、ActiveXもJavaScriptも有効になってるんですが…(´・ω・`)
過去ログが見られないので過去スレの回答が分かりません orz

211:デフォルトの名無しさん
04/11/03 15:51:31
>>3のまとめページに過去ログあるぞ

212:ロロ
04/11/03 16:01:59
RVCT は C++ 使えるよ。
だけどテンプレートまわりで制限があるよ。

213:デフォルトの名無しさん
04/11/03 16:39:16
>>211
まとめページ見逃してました orz
過去レスのリンクからオフィシャルフォーラムで記事を見つけ、無事DLできました。
ありがとうございました

214:デフォルトの名無しさん
04/11/04 00:11:50
喪前ら今日もたくさんBREWタンを弄んだんですね

お疲れさまです

215:デフォルトの名無しさん
04/11/04 05:17:14
KDDIの認証で、ITextCtlとIMenuCtlを使って
ソフトキーを描画するなって書いてあったんだけど、
自分で画像用意してイベントはAVK_SOFT1とかでやれって事?
折角用意されてるのに、おかしくないか?

216:デフォルトの名無しさん
04/11/04 06:50:05
サービスガイドのキー入力-ソフトキーに禁止理由書いてある

217:デフォルトの名無しさん
04/11/04 10:37:31
てか大して使えもしないコントロールの利用方法覚えるより、
制限に縛られずに適当に作った方が楽でないかい?


218:デフォルトの名無しさん
04/11/04 10:54:42
質問させてくれろ・・・
3Dモデルって何のファイル使えばいいの?
拡張子教えてくれろ・・・。

219:デフォルトの名無しさん
04/11/04 11:14:23
LightWaveのファイルはそのまま使える

220:218
04/11/04 11:38:38
>>219
下記のプラグインとかはいれる必要ないんですかね?
URLリンク(www.mascotcapsule.com)

・・・モデル描画はAPIとかありましたっけ?
もしかして・・・、座標データを使って3Dモデル描画しましょうw
って感じですか?

221:デフォルトの名無しさん
04/11/04 16:01:23
AEEAppletで作るアプレットのメンバを
グローバル変数のかわりに使おうかとしてるんだけど、
これってサスペンドから復帰したときに初期化されちゃうよね?

藻前らサスペンド時にdbに書き込んだり
ファイルに保存したりとかやってるの?

222:204
04/11/04 16:55:00
ファイルに保存した方が良いんだろうけど、俺はメモリに放置しっぱなし。
EVT_APP_STOPの時に解放してる。

まぁ、解放できそうな物はSUSPEND時に解放してRESUMEで復元してるけど。

223:221
04/11/04 16:59:38
>>222
え?サスペンドから復帰したとき初期化とかされないの?
エミュで実験してるけど0で初期化されてるような気がするけど

224:221
04/11/04 17:10:46
と、思ったが、
SUSPENDをhookしてないことに気がついた。
たぶんTRUEかえせばOKなんだろう。

225:デフォルトの名無しさん
04/11/04 17:15:56
例のソフィアクレイドルの記事にもあるが、
SUSPENDに対してFALSE返すと、強制的にアプリを終了させられてる。
TRUEを返せば、大丈夫。
ただ、全てのタイマーを終了させることと、
一部のオブジェクトに関して解放を行い、
RESUME時にそれらを復帰させないと駄目。

226:デフォルトの名無しさん
04/11/04 17:24:18
>>225
ご指摘のとおりですた


227:デフォルトの名無しさん
04/11/04 18:26:14
>>197
C++使うならarmcppでコンパイルすればOK。
C++構文使いたいだけならmakefileのCCを直すだけで良いだろう。
クラスとか普通に使うとすると自動生成makefileを手直ししないといけなく
なってくるけどね。

ただ、エミュ用にコンパイルするときVCのデフォルト設定だと
.cはC++としてみてくれないから.cppとかに変えるかプロジェクト設定弄ら
ないとならんけど。

228:デフォルトの名無しさん
04/11/04 18:40:41
RVCTでビルドしてみたら、こんなの出るけども

>Warning: Q0115W: Deprecated command syntax will not be supported in future versions. Use -output to specify the output file.
>Finished: 0 information, 1 warning and 0 error messages.

今後サポートされそうにない命令使っているってことなの?
みなさん、どうしてるの?

229:デフォルトの名無しさん
04/11/04 18:45:01
>>228
どこだったか忘れたけど、それは無視して良いって書いてあったはず。

230:デフォルトの名無しさん
04/11/04 18:54:47
>>229 エク、エク、エク、エク、エクセレント!
英語ばかりで悩んでます。ありがとう。

231:デフォルトの名無しさん
04/11/04 19:05:40
とりあえずCPさんもそうじゃない人もKDDIのプログリミングガイドとサービスガイドに目を通しておくことをお勧めする

232:デフォルトの名無しさん
04/11/04 19:30:16
>>230
ごめん。
EZアプリ(BREW)開発ツールガイドver1.5.pdf を確認したら
ARMコンパイル時のWarningで4つくらい例が出てて、
そのWaningだけ「必ずしも無視できるわけではない」って書いてあった。
スマン。

233:デフォルトの名無しさん
04/11/04 20:39:48
ぶりゅう子「おにぃちゃん…きょうも…わたしを………いじめるの…………」

234:デフォルトの名無しさん
04/11/04 21:47:32
>>228
過去スレに答えがモロあったような…
makefileのHEXTOOLのパラメータを書き換えた

235:デフォルトの名無しさん
04/11/05 10:44:17
みんな「ブリュ-」って読んでるけど、「ブルー」らしいぞ

236:デフォルトの名無しさん
04/11/05 11:08:55
どっちでもいいんだよ。
でも、ブルーが一般的になりそうだね。
ここじゃブリューで定着しちゃったけど。

237:デフォルトの名無しさん
04/11/05 11:18:20
URLリンク(rundog.txt-nifty.com)

238:デフォルトの名無しさん
04/11/05 18:31:23
スペルをBLUEにしろよ

239:デフォルトの名無しさん
04/11/05 18:41:47
>238
飲み物つながりでJavaへの対決姿勢を示したんでは。
見てみたら「醸造する」の他に「(お茶を)入れる」って意味もあるのな。 > brew

240:デフォルトの名無しさん
04/11/07 01:18:09
>>231
まったくだ。本当にそのとおりだ。頼むからみんな読んでくれ。
あとFAQも。
pdfだしその文書そのものも、もっっっのすごい読みづらいのはわかる。
けど、知らないとすごい困ることが多いんだ。
お薦めするというより必須。いやもうホントに…

241:デフォルトの名無しさん
04/11/07 12:44:59
>>240
どこにあるの?

242:デフォルトの名無しさん
04/11/07 13:19:29
URLリンク(www.au.kddi.com)
ここにあるやつかな

243:デフォルトの名無しさん
04/11/07 13:51:02
ゼッタイ読んでないねーってアプリもいくつかあるね

244:デフォルトの名無しさん
04/11/07 13:57:27
うん。派遣でBREW開発だというんで、そこのを読んで予習していったら、
全然従ってないので唖然としたことある。

245:デフォルトの名無しさん
04/11/08 00:01:01
まあ全ては>>240
>pdfだしその文書そのものも、もっっっのすごい読みづらいのはわかる。
になるんだけどね。
300ページ近いくせにしおりもリンクもないもんだから(一部あるけど)、
えっちらおっちらスクロールして探さないといけない
やる気あるのか?KDDI

246:デフォルトの名無しさん
04/11/08 00:14:27
検索しる
…と言いたいが確かにだるいな

だが検証を通すのに必要なことがあちこちに書かれてあるので
チームリーダーか全体仕様を考えたりするエロい人に一度は読ませるべき

~~はしてはいけませんとか使ってはいけませんとかこうしなさいとか書かれてんだもんな…_| ̄|○オカゲデ キョウモ テツヤデス

247:デフォルトの名無しさん
04/11/08 15:18:49
独り言です。
機種一覧表(性能、フォントサイズ、使用可能サウンドフォーマット、etc.)とか無いのかなぁ。
まったく、ふしだらな。

248:204
04/11/08 15:20:26
URLリンク(brewforums.qualcomm.com)
結局のところ、libstdc++.a ライブラリか、ヘッダファイルの中のコードで malloc() free() を使ってるのが良くないみたいだ。
っつー事はヘッダ書き換えて(operator new & delete)ダメだったらライブラリ自体再コンパイルだな。
すげーマンドクサいが、stlportを移植するよりはよっぽど楽そうだ。

あー、早くBREWでSTL使いたい。

249:デフォルトの名無しさん
04/11/08 18:32:15
ソフトキーの描画ってどうやってます?
画面の下に自分で文字書いてたりしてます?絵とか。

250:デフォルトの名無しさん
04/11/08 18:42:37
>>249
自分で四角描いて文字を描画してるだけ。

251:デフォルトの名無しさん
04/11/08 20:14:53
>>249
俺もそーしてる。その方が自由に描けるし。
っつーか、BREWで用意されてるコントロール系は何かと使いづらいね。
がんばって似たようなの作ろうかな。

252:デフォルトの名無しさん
04/11/08 21:02:42
>>249
自分で画像作ってる。けどデキがいまいち・・・。
本物のソフトキーと同じ画像ってどっかにないもんかね?

>>251
激しくキボン。

253:デフォルトの名無しさん
04/11/08 22:15:57
BREWはまだまだ商品として世に出されるべきではなかったな
構想段階でもう半年~一年ぐらいはっきりと仕様を固めていれば
今のように"とても"作りにくく移植性の低いAPIにはならなかったはず
それともQ社の技術力が低いのか

どちらにせよ全体的な仕様統合と十分なサポートがなされないなら
該当諸氏はQ社に対する評価を改めるべきである

と書かれてた

254:デフォルトの名無しさん
04/11/08 23:26:05
brewのAPIが使いにくいのは確かだが、海外端末扱ってるとJAVAほど端末による
癖が無いのはうれしいけどね。
C系統だからプリプロセッサ使えるし。

しかし、何でオブジェクト指向なのにCでやろうと思ったのかが激しく疑問だが。
最初からC++にすればあんな使いにくいAPIにはならなかっただろうに。

255:デフォルトの名無しさん
04/11/08 23:32:22
エミュレータでImage開いてサイズの取得のみだけやってリリース、
その後一時的に処理がやたらと重くなるって不具合ない?
実機で再現しないんで放置してよいものかどうか…

>>252
詳しくも何も、好き勝手自由に作るだけじゃね?
使いやすいと思えるのは結局作った本人だけな罠w


256:デフォルトの名無しさん
04/11/09 00:18:00
>>247
俺も欲しいよ。
KDDI用意しろやああああああ
機種ごとの資料みて自分でまとめるのは面倒なんじゃあああああ

257:デフォルトの名無しさん
04/11/09 00:46:28
>>256
そうそう、面倒だよな~
しかも端末仕様書にIMenuControlインタフェース云々のくだりがあるもんだから、
勝手に使えるもんだと解釈されて、その前提で会議進んでるしw

てか標準フォントサイズのバラバラ加減もどーにかして欲しいもんだがナー

258:249
04/11/09 11:43:34
皆様どうもです。やっぱり手書きなんですねーうーむ。

もう一つ質問なのですが、終了キー以外にも終了ボタンが必要とか
検証項目にあるのですが。。
ISHELL_CloseApplet()をいつでも呼べるようにすることですよね?
ソフトキーにこれと、音楽on/offを当てたら終わりですよねぇ。

ISHELL_CloseApplet()は必ず必要?

259:デフォルトの名無しさん
04/11/09 11:52:51
>>249
俺はトップメニューに「終了」項目つけて、それでCloseAppletするようにしてる。
全部の画面から終了できるようにする必要はないんじゃないかな?
まぁまだ検証出してないからわからんが・・・。

260:259
04/11/09 11:56:19
追加。
CloseAppletで終了できるようにしろっていうのは、
確か終話ボタンで終了すると、他のサスペンドしてる
アプリも終了しちゃうからだったと思う。
そういう意味ならどっか1箇所でCloseApplet呼び出せるようにすればいいかと思われ。

261:デフォルトの名無しさん
04/11/09 12:30:03
>>258
どこでも終了できるようにしなくてもOKだよ。
うちも259と同じようにトップとかに終了をつけてるだけだし。

262:デフォルトの名無しさん
04/11/09 12:48:31
>254
JavaでもPPP.exeなんかを使えば、プリプロセッサもどきは可能。
探せば、他にもありそうだけど(#define 関数が使えるとか)。


263:249
04/11/09 14:00:18
>>259-261
なるほどサスペンドなんかを考えなければいけなかったんですね。

ありがとうございました!

264:デフォルトの名無しさん
04/11/09 15:40:20
>>256-257  少しばかりの一覧表  外出か?
URLリンク(www.au.kddi.com)

265:デフォルトの名無しさん
04/11/09 16:00:19
>>262
まあそうなんだが(Cコンパイラでプリプロセッサだけかけるって手もあるしね)コンパイラ
自体が機能を持ってないから他人/他社と連携するときに色々面倒だ。
スレ違いなんでこの辺にしておくが、C++派の漏れとしては、まあとりあえずSymbianかbrewに
がんばってほしいところ。

266:デフォルトの名無しさん
04/11/10 22:05:06
もう2ch製APIとかつくりゃええやん

267:デフォルトの名無しさん
04/11/11 11:42:48
お忙しい所申し訳ありません。
質問が御座います。

モード選択でモードA・Bの二つを
上下キーで選択する処理を行いたいのですが、
「A1402S」のジョグダイアルにて
キーが取得出来ない様なのです。
(端末が手元に無い為、動作確認出来ません;;

ジョグダイアルの上下キー取得は
AVK_UP・AVK_DOWNで問題無かったでしょうか?
また、タイマー速度が速すぎると
キーを取りこぼしたりはするのでしょうか?
参考にタイマー速度を幾つに設定しているか等
教えていただけると幸いです。
因みに、現在のタイマー速度は80㍉秒に設定しています。

何卒、よろしくお願い致します。

268:デフォルトの名無しさん
04/11/11 12:24:36
>>267
AVK_UPとDOWNでおk。
ジョグダイアルって一瞬でPRESSとRELEASEのイベントが来るからそのせいじゃないのかな?

269:デフォルトの名無しさん
04/11/11 14:01:05
>>267
ラボ行って試せ。がんばれ

BREW ディベロッパー ラボ 無料
URLリンク(www.brewjapan.com)


270:デフォルトの名無しさん
04/11/11 14:38:46
>>266
ここの住人が結集してフレームワーク作るってことか?

271:デフォルトの名無しさん
04/11/11 15:44:10
>>267
タイマーって何ぞや?
普通にキーイベントを取得するだけなら、タイマーとか必要ない筈だが。
アプリのHandleEventで、eCode==EVT_KEY、wParam==AVK_UPとかを検出すれば出るはず。
そこにブレークポイントかDBGPRINTF置いて、処理がそこに行ってないようであれば、
キーイベント検出の前に何かのコントロールのハンドルイベントでTRUEを返してる可能性有り。
ちなみに俺はW21Sなんだが、ジョグダイヤルでもちゃんと検出できてるぞぃ。

272:デフォルトの名無しさん
04/11/11 15:44:32
>>267
タイマーって何ぞや?
普通にキーイベントを取得するだけなら、タイマーとか必要ない筈だが。
アプリのHandleEventで、eCode==EVT_KEY、wParam==AVK_UPとかを検出すれば出るはず。
そこにブレークポイントかDBGPRINTF置いて、処理がそこに行ってないようであれば、
キーイベント検出の前に何かのコントロールのハンドルイベントでTRUEを返してる可能性有り。
ちなみに俺はW21Sなんだが、ジョグダイヤルでもちゃんと検出できてるぞぃ。

273:デフォルトの名無しさん
04/11/11 16:22:25
>>267
俺の方は70msでちゃんとキーイベントが来てたからタイマーの間隔は大丈夫だと思う。

>>271
タイマーコールバックを短い間隔で回すとキーイベントが来ないことがあるってなかったっけ?

274:271
04/11/11 16:50:35
>>273
ん~タイマーは数秒以上でしか使ってないからわからん。
後は任せた。

275:267
04/11/11 16:58:36
>>268
>AVK_UPとDOWNでおk。
それだけ分かっただけで助かります。
ありがとうございました。
原因は別の所に…;

>>269
>ラボ行って試せ。がんばれ
それが一番なんですが、何せここは北海道…
もうすぐ雪が降りますわ…_| ̄|○

>>271-272
>タイマーって何ぞや?
製作中のアプリがゲームなので、
ゲームループ回すのにタイマーを使用してるんですよ。
んで、ループの頭で押しっぱなしやらを判定してます。

>ハンドルイベントでTRUEを返してる可能性有り。
他機種の上下キーによる動作は大丈夫なんで、
問題は無いかと…。

アドバイスからすると取得は問題なさそうなので、
違う箇所を検証してみます。
また何かあれば宜しくお願い致します。

276:デフォルトの名無しさん
04/11/11 17:20:39
>>267
あー、たぶんキーを押したとかのフラグ処理が悪い。
RELEASEのときに押したっていう情報は残らないで
そのキーが押されていない状態になるっていう処理になってないか?

277:デフォルトの名無しさん
04/11/11 17:26:40
質問させてください
Brewでゲームを開発しているのですが
「A5503SA」にてIWebで通信後、ゲームのスピードが重くなる
現象がでます。
他の機種(A5501T等)では、ゲームスピードが変わることはないので
リリースのミスなどはないと思うのですが
同じような現象で対応策などありましたら情報を宜しくお願いします。

278:デフォルトの名無しさん
04/11/11 17:33:39
>267
端末仕様書を見れ
どのキーがどのイベントに対応してるか載ってますよ

あと時間を窮する質問は掲示板ではしない法がよいかと思われ

279:デフォルトの名無しさん
04/11/11 17:57:04
>>267
BREWはキー押しっぱなしだとEVT_KEYイベントが断続的に発生するから

キー押されたらフラグ上げる
→タイマーイベントでフラグをチェック+処理
→フラグをクリア
→タイマーセット

でいいと思うが。
わざわざRELEASE拾う必要なくね?


280:267
04/11/11 17:58:53
>>276
>RELEASEのときに押したっていう情報は残らないで
>そのキーが押されていない状態になるっていう処理になってないか?
あー、ビンゴです…;
要は

EVT_KEY_PRESS  押したキーフラグ取得
EVT_KEY_RELEASE 放したキーフラグ開放
だと、
ゲームループ内で押しっぱなし等の確認処理を行う前に
フラグが消えている _| ̄|○|||

ってことでOKですか?

281:デフォルトの名無しさん
04/11/11 18:15:06
大体ソースが見えたな。
タイマーにかからないタイミングでキー連打したら、
全く動かないゲーム作ってるって事かw


282:デフォルトの名無しさん
04/11/11 18:15:56
>>267
そゆことだな。

283:デフォルトの名無しさん
04/11/11 18:39:43
>>270
欲しいなそれ。
むしろ作りかけの物をとりあえず公開して、
ああしようこうしような風に仕上げていっても良いかも試練。

へっぽこなモンだったら漏れも公開できますが。w

284:デフォルトの名無しさん
04/11/11 18:50:31
全てはへっぽこから始まる

285:デフォルトの名無しさん
04/11/11 23:05:04
いいね、フレームワーク。
皆でやっちゃいますか?

286:デフォルトの名無しさん
04/11/11 23:29:11
賛成。
STLPortの移植も…

287:デフォルトの名無しさん
04/11/11 23:37:45
ちっちゃい独自関数でもあると便利なんてのもありですな

288:デフォルトの名無しさん
04/11/12 00:01:17
今更かもしれないけど、自分はジョグだけはEVT_KEYで取ってた

289:デフォルトの名無しさん
04/11/12 02:07:16
BREWのバイナリサイズに上限はありましたっけ?
STLPortのライブラリをリンクすると結構でかくなりそうな気がするんですが

290:デフォルトの名無しさん
04/11/12 05:02:38
>>289
mod,sig,bar等とアプリが作成するファイル
全部含めて200KB(QVGA対応機は300KB)。

291:デフォルトの名無しさん
04/11/12 10:21:41
>>289-290
ストレージも、シェアも・・・
関係するファイルサイズ全て含めて200,300KBですよね。

292:デフォルトの名無しさん
04/11/12 14:14:07
>>289>>291はサービスガイドと開発ガイドを全然読んでないだろ。

293:デフォルトの名無しさん
04/11/12 16:07:17
タイマーのコールバック間隔とキーイベント破棄の関係について
サービスガイドに載ってる注意書きから抜粋。参考までに。

※ BREW2.1 対応機種では、50ms 程度の短いタイマ間隔でコールバックを繰り返すとキープレスイベ
ントが破棄される場合があります。
タイマ間隔を長くするなどのアプリ側でのチューニングが必要となりますのでご注意ください。

294:デフォルトの名無しさん
04/11/13 00:10:09
modてギャクコンできないのかな
うっかり古いソースを上書きしてもうた

295:デフォルトの名無しさん
04/11/13 00:18:52
一般にオブジェクトコードからCレベルのソースを復帰するのは至難の業。

296:デフォルトの名無しさん
04/11/13 13:10:30
とっとと思い出してコーディングした方が速い

っというか、仕事でやってるならバックアップぐらい
とっとけよ

297:デフォルトの名無しさん
04/11/15 12:43:46
>>293
30フレーム/秒は不可能というわけか。

298:デフォルトの名無しさん
04/11/15 15:28:48
良い機会だからCVSの導入または、毎日一回自動でバックアップを取るバッチを作るといいと思うよ。
ちなみにそう言うときはファイル名は backup-yyyymmdd.zip みたいにしてある程度世代管理してもファイル名がかぶらないようにすると良い。

299:デフォルトの名無しさん
04/11/15 15:32:07
>>297
可能だと思う。処理しきれない速度でイベントが到達すると、
many callbacks pending とか何かでイベントが破棄されるだけ。

だから、一回の処理が10~30ms程度で完了するのであれば、30fpsは実現可能。

>>293の言ってるキープレスが破棄されるってのは、イベント処理待ちが多すぎて、
せっかく届いたキーイベントが無視されるってわけ。

だからタイマー間隔が長くても、一回の処理が遅すぎると結局キーイベントを取りこぼす可能性大。

300:デフォルトの名無しさん
04/11/15 17:23:05
エンドキーって終話キーとはちがうのですか?

301:デフォルトの名無しさん
04/11/15 17:45:05
Windowsみたいにメッセージをメインループ側から受け取る事ってできるっけ?

「秒間30フレーム」は可能かもしれないけど、
タイマー使うメッセージループて時点で「1/30秒で回ってくるメインループ」は
不可能な気がするんだが。処理が追いつく前提でも。


302:デフォルトの名無しさん
04/11/15 22:02:12
>>300
エンドキー=終話キーで、多分あってると思う。

>>301
確かに。出来たとしても、なんちゃって30fpsだな。w

303:デフォルトの名無しさん
04/11/15 22:48:01
Smallフォント対応機種向けのBREWアプリで、
Smallフォントを使用する方法はあるのでしょうか?

enumで定義されてる
AEE_FONT_~
らには、それらしきものはないので、無理かと思いましたが、
どこかでエクストラスモールフォントを使用する方法を
見かけたような気がして……。

304:デフォルトの名無しさん
04/11/15 23:33:01
>>303
FAQだったはず

305:デフォルトの名無しさん
04/11/15 23:35:50
スマンカッタ、FAQだけだとわけわからんな
開発支援サイトのFAQと端末仕様のpdfを参照すれ
どれかのフォントと排他なんで使いづらいかもよ

306:デフォルトの名無しさん
04/11/16 00:08:17
プログラミングガイド50ページ以降嫁

307:デフォルトの名無しさん
04/11/16 00:43:23
>>304-305
ありがとうございます!助かりました。
既存フォントと差し替える形で使うのですね。


>>306
すみません、目視&検索で探しては見たのですが、
読み落としてしまったみたいです_| ̄|...○

308:デフォルトの名無しさん
04/11/16 10:04:36
そうなんだよ、一度読破しておかないとダメなんだよ。
検索や目視でひっかからないことがおおい。
「どこかにそんなこと書いてあったなぁ」というのだけが頼り。

309:デフォルトの名無しさん
04/11/16 12:53:34
>>301 >>302
マルチタスクの環境(BREWもカーネルがアプリの実行をスケジュールしてるから
これにあたるよね)でなんちゃってじゃないFPS管理なんてできないでしょ。
なんちゃってでも、処理速度が追いついてれば概ねその通りに動くんだから普通は30fpsといえると思うが。
#まあ実際現状の端末では30fpsでまともな処理は難しいと思うが

ちなみにBREWのコールバックって種類が多すぎ&統一性があまり無いから困るね。
さらにタイマーとか優先度が高いコールバックがあると、imageのデコード終了とかのコールバックは後回しになっちゃったりするし。
いっそのことVxWorksでも入れてくれると良かったんだが。

310:デフォルトの名無しさん
04/11/16 14:46:52
検証項目?のMALLOC後の戻り値を見るってやつなんですが
みなさまどういう実装してます?

これ後から気づいて。。

いま

char *a() {
    return (char *)MALLOC(128);
}

のような関数あるんですが。。どうしよう。。

311:デフォルトの名無しさん
04/11/16 15:12:08
オールBREW端末にらんで~日立ソフトBREW GUI開発ツール
URLリンク(www.itmedia.co.jp)

世界初、日立ソフトがクアルコムのBREWR3.1対応
携帯電話向けGUI開発支援ツールを販売
~携帯電話端末への組込み型BREWアプリケーション開発の生産性を飛躍的に向上~
URLリンク(www.hitachi-sk.co.jp)

キタ━━(゚∀゚)━━!!!!

312:デフォルトの名無しさん
04/11/16 15:13:28
日立ソフト:アプリケーション開発フレームワークanyWarp
URLリンク(hitachisoft.jp)

313:デフォルトの名無しさん
04/11/16 15:18:53
URLリンク(k-tai.impress.co.jp)

314:デフォルトの名無しさん
04/11/16 15:23:20
>>310
ぬるぽだったら終了させればいいんじゃねーの?

315:デフォルトの名無しさん
04/11/16 15:23:37
ITmedia記事より。

> 価格は年間使用権契約で、1ライセンスあたり100万円弱を想定している。
> キャリアや端末メーカーから、アプリケーション開発やコンサルティングを
> 受託し、初年度5億円の売上げを目指す。

えーと...。


316:デフォルトの名無しさん
04/11/16 15:24:32
>>314
ガッ

317:デフォルトの名無しさん
04/11/16 15:39:09
KDDIのアプリ企画審査って厳しいんですか?
普通に動けばいいってもんじゃない?


318:デフォルトの名無しさん
04/11/16 16:04:16
この流れで1分でガッされるのか・・・

319:315=316
04/11/16 16:09:19
すみません、315書いてリロードしたらすぐ上のカキコが目に入ったもので脊髄反射で...。

320:310
04/11/16 16:12:17
ぬるぽで終わらせたいんですが
メッセージ出してうんぬんかんぬん。。。だとかなり直さないといけないので
どうしたものかと思ったのですが~

やはり地道に書くしかないみたいですねー


321:315=316
04/11/16 16:25:36
>>320
今度もガッ

よく分かりませんがエラー発生時にメッセージ出さずにいきなり終了はNGですよ。
メッセージ出してなんかボタン押されたら糸冬了ってシーケンスにしとかないと。

>>317
そりゃもう。

322:デフォルトの名無しさん
04/11/16 16:28:22
基本的に何処のルーチンに於いても、
エラー検出して異常終了(再開)できる出口用意しといた方がいいと思う。
つかそれが普通だと思う。
ぬるぽ検出したら、上の出口につなげるだけ。

MALLOC以外にも、動的にメモリ確保する箇所は山ほどできるぞ。
つーかpngなりjpeg使う時点でヒープ使うし

323:310
04/11/16 16:47:27
むー結構大変ですねー
とりあえず終了用のclassを改造してみます。

ありがとうございまっした

324:デフォルトの名無しさん
04/11/16 16:52:05
>>322
(´-`).。oO(終了メッセージ出すとこでぬるぽしたらどうするんだろう)

325:デフォルトの名無しさん
04/11/16 16:58:32
>>324
終了用ダイアログ(IDialogでは断じてない)は最初に用意しておく、が正解。
最初にそれすら確保できないようなケースは知らん。

326:310
04/11/16 18:15:40

a = MALLOC(1);
b = MALLOC(2);
c = MALLOC(3);

例えばこんなコードでcでエラーが起きた場合、
aとbもFREEしないといけないんですよね。。。

めんどーひ

327:デフォルトの名無しさん
04/11/16 19:15:09
BREWのFONTって、文字の横幅は固定なのでしょうか?
固定っぽいけど、それは機種依存になるのかな?
今後、それは変わらないのでしょうか?

だれか教えてください  ペコリ

328:327
04/11/16 19:22:50
言葉足らずなので追記
可変長フォントなんてのがあり得るのか、知りたいのです。

329:デフォルトの名無しさん
04/11/16 20:28:12
固定ピッチかプロポーショナルかってことなら、固定ピッチだ。
また、LARGEは何ドット、NORMALは何ドット、という規定値もない。
具体的なドット数は機種によってバラバラなので端末仕様書で確認する。


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