BREW(Binary Runtime Environment for Wireless) 3
at TECH
1:デフォルトの名無しさん
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の様な分け方できないもんな
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5367日前に更新/284 KB
担当:undef