š‚¨‘O‚çJava‚ÍJNI‚Å‘ ..
[2ch|¥Menu]
400:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/20 00:03:00
>>399
> ‚»‚ê‚­‚ç‚¢‚È‚ç‘Ñˆæ‚Æ‚©‚ ‚邾‚낤‚ªURLƒNƒ‰ƒXƒ[ƒ_‚ðŒp³‚µ‚Ä’ÊM‚ðˆÃ†‰»A
> –ˆ‰ñƒ[ƒh‚·‚é‚Ù‚¤‚ª‚Ü‚¾Œ»ŽÀ“I

u‚Ü‚¾Œ»ŽÀ“Iv‚Á‚Ă̂ª‚Ç‚¤‚¢‚¤‚±‚Æ‚ðˆÓ}‚µ‚Ä‚¢‚é‚Ì‚©‚æ‚­‚í‚©‚ç‚ñ‚ªA
JNI‚ŃNƒ‰ƒXƒ[ƒ_ì‚é‚Ì‚Á‚đ債‚½ŽèŠÔ‚¶‚á‚È‚¢‚µ
ƒlƒbƒgƒ[ƒN‚ðˆÓޝ‚µ‚È‚«‚á‚È‚ç‚ñ‚Ù‚¤‚ª‚¢‚ë‚¢‚ë–Ê“|‚¾‚ÆŽv‚¤‚ª‚ËB

401:390
04/12/20 00:21:26
>>399
> ‚»‚ê‚­‚ç‚¢‚È‚ç‘Ñˆæ‚Æ‚©‚ ‚邾‚낤‚ªURLƒNƒ‰ƒXƒ[ƒ_‚ðŒp³‚µ‚Ä’ÊM‚ðˆÃ†‰»A
> –ˆ‰ñƒ[ƒh‚·‚é‚Ù‚¤‚ª‚Ü‚¾Œ»ŽÀ“I
‚»‚ꂱ‚»URLƒNƒ‰ƒXƒ[ƒ_ƒNƒ‰ƒX‚ðƒŠƒo[ƒXƒRƒ“ƒpƒCƒ‹‚³‚ê‚é‚Ì‚ÅA–³ˆÓ–¡‚̂悤‚È‹C‚ªEEEB
ƒf[ƒ^‚̈Ɖ»‚Å–³‚­Aƒf[ƒ^‚ðˆµ‚¤ƒ‚ƒWƒ…[ƒ‹‚̈Ɖ»‚ð‚±‚±‚ł͖â‘莋‚µ‚Ä‚¢‚é‚ñ‚Å‚·B

>>400
>JNI‚ŃNƒ‰ƒXƒ[ƒ_ì‚é‚Ì‚Á‚đ債‚½ŽèŠÔ‚¶‚á‚È‚¢‚µ
‚¨‚¨I–{“–‚Å‚·‚©H
¥”ñ¥”ñƒ\[ƒXƒŒƒxƒ‹‚Å‹³‚¦‚Ä‚­‚¾‚³‚¢B
æ‚Ù‚Ç‚¿‚å‚Á‚Ƒ˦‚µ‚ÄŽŽ‚µ‚Ă݂½‚ñ‚Å‚·‚ªA
FileInputStream‚ðJNI‚ÅŽÀ‘•‚µ‚悤‚Æ‚µ‚½‚ñ‚Å‚·‚ªA
‚±‚ê‚à‚â‚͂肤‚Ü‚­‚¢‚«‚Ü‚¹‚ñ‚Å‚µ‚½EEB
JNIA‚Þ‚¸‚¢‚Á‚·B


402:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/20 00:48:32
ƒNƒ‰ƒX‚ªˆÃ†‰»‚³‚ê‚æ‚¤‚ÆJRE‚Ìã‚Å“®‚­‚Æ‚«‚ɂ͕’ʂ̃Nƒ‰ƒX‚¾‚ë

403:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/20 11:22:32
‚½‚Ô‚ñ390‚ÍVM‚Ì’†‚ÍŠO‚©‚çâ‘΂̂¼‚¯‚È‚¢‚ÆŽv‚¢ž‚ñ‚Å‚¢‚é‚Ɉê•[B

404:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/20 21:43:16
‚±‚̕ӂðŽQl‚É‚µ‚Ä‚©‚ç google‚ÅŒŸõ‚µ‚Ă݂ë
URLØÝ¸(java.sun.com)


405:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/21 13:59:21
‰•à“I‚ÈŽ¿–â‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ªA‹³‚¦‚Ä‚­‚¾‚³‚¢B

Java‚©‚çJNI‚ð—˜—p‚µ‚ÄŠù‘¶‚Ìdll‚ɃAƒNƒZƒX‚·‚éê‡AƒIƒXƒXƒ‚Ì•û–@‚Í‚ ‚é‚Å‚µ‚傤‚©H
‰½’ʂ肩‚ ‚é‚Ì‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ª...B
uŠù‘¶‚Ìdll‚ÍˆêØ•ÏX‚µ‚È‚¢v‚±‚Æ‚ªðŒ‚Å‚·B
‚½‚Æ‚¦‚ÎAŠÔ‚Ƀ‰ƒbƒp[iHj‚ð‚©‚Ü‚·‚Æ‚µ‚Ä
udll‚ðŽw’肵A—˜—p‚·‚éAPI‚ð‘I‘ð‚·‚é‚ÆŽ©“®‚щƒbƒp[i‚Ü‚½‚Í‚»‚̃x[ƒX•”•ªj‚𶬂µ‚Ä‚­‚ê‚éƒc[ƒ‹v‚Æ‚©...B
JavaˆÈŠO‚ÌŒ¾Œê‚ɂฒʂµAJNIƒSƒŠƒSƒŠ‚ª“¾ˆÓ‚È•û‚Í•s—v‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ªA
uJava‚©‚çJNI‚ð—˜—p‚µ‚ÄŠù‘¶‚Ìdll‚ɃAƒNƒZƒX‚·‚év‚ð–Ú“I‚Æ‚·‚éê‡AŽù—v‚ª‚ ‚邯Žv‚¤‚̂ł·‚ªH

‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B


406:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/21 16:15:32
ƒ‰ƒbƒp[‚‚­‚邵‚©‚È‚¢‚æ

‘åŠT•„†‚‚«‚ð‚Ç‚¤‚·‚é‚©‚Æ‚©‚»‚̕ӂª‚ ‚é‚킯‚Å

407:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/23 18:18:03
Ž¿–â‚Å‚·‚ªAˆê”Ê“I‚É‚i‚m‚h‚Æ‚¢‚Á‚½ê‡AJVMTI,JVMPI,JVMDI“™‚Í‚»‚Ì’†‚Ɋ܂܂ê‚邯l‚¦‚Ä‚¢‚¢‚̂łµ‚傤‚©H


408:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/23 19:17:20
‚»‚ê‚ç‚·‚×‚Ä‚Æ‚à‚¿‚ª‚¤‚©‚Æ
JNI‚Æ‚¢‚Á‚½ê‡‚̓lƒCƒeƒBƒuƒR[ƒh‚ðŒÄ‚Ño‚·A‚à‚µ‚­‚̓lƒCƒeƒBƒuƒR[ƒh‚©‚çJVM‚ðŒÄ‚Ño‚·‚Ì‚ª–Ú“I‚¾‚©‚ç

‚Á‚Ä‚·‚ׂČŸõ‚·‚ê‚ÎÚ×o‚Ä‚­‚é‚ñ‚¾‚ª’Þ‚èH

409:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/10 02:40:02
’mŒb‚ð‘Ý‚µ‚ĉº‚³‚¢D

Œ»ÝC‚©‚çJava‚ðŒÄ‚Ño‚·ƒR[ƒh‚ð‘‚¢‚Ä‚¢‚Ü‚·D
Java‚̃R[ƒh‚ðŒÄ‚Ño‚·“x‚ÉJVM‚𶬂·‚é‚̂̓RƒXƒg‚ª‘å‚«‚¢‚ÆŽv‚í‚ê‚é‚ÅC
‰ü‘P‚µ‚½‚¢‚ÆŽv‚Á‚Ä‚¢‚Ü‚·‚ª—Ç‚¢•û–@‚ª•ª‚©‚è‚Ü‚¹‚ñD
Œ»Ý‚̃R[ƒh‚ð’ŠÛ‰»‚µ‚Ĉȉº‚ÉŽ¦‚µ‚Ü‚·D

int main(void){ for(int i=0;i<500;i++){ hoge(); } return 0; }

void hoge(void)
{
...
JNI_GetDefaultJavaVMInitArgs...
JNI_CreateJavaVM...
env->CallStaticVoidMethod...
jvm->DestroyJavaVM...
...
}

public class HelloVM { static void hello() { System.out.println("HelloVM(Java) executed.\n"); } }

Œ»Ý‚Íã‹L‚Ì—l‚ÈŠ´‚¶‚ÅC500‰ñhelloƒƒ\ƒbƒh‚ðŒÄ‚Ô“x‚ÉJVM‚ð쬂µ‚Ä‚¢‚Ü‚·D
‚µ‚©‚µ‚±‚ê‚Å‚Í쬂Ɏ¸”s‚·‚邱‚Æ‚ª‘½X‚ ‚è‚Ü‚·D
‚à‚Á‚Æ—Ç‚¢•û–@‚͂Ȃ¢‚Å‚µ‚傤‚©H

410:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/10 03:04:34
> ޏ”s‚·‚é

‚ǂ̂悤‚ÈŽ¸”s

411:409
05/02/11 03:38:07
>>410
2‰ñ–ÚˆÈ~‚Ì JNI_CreateJavaVM ‚ªŽ¸”s‚µ‚Ä‚¢‚é‚Á‚ÄŠ´‚¶‚Å‚·D
¡‚͎茳‚ɃR[ƒh‚ª‚È‚¢‚Ì‚ÅCŒã“úÚׂȕñ‚ð‚µ‚Ü‚·D


412:409
05/02/12 06:25:57
>>410
—Ⴆ‚Ήº‹L‚̃TƒCƒg‚̃R[ƒh‚ð—¬—p‚µ‚½‚Æ‚µ‚Ü‚·D
URLØÝ¸(www.ki.rim.or.jp)

public class HelloVM { static void hello() { System.out.println("HelloVM(Java) executed.\n");} }

#include "stdafx.h"
#include "jni.h"

int hoge(void)
{
// ‘O—ª
nResult = JNI_GetDefaultJavaVMInitArgs(&vm_args);
if ( nResult == 0 ) { printf("Success to JNI_GetDefaultJavaVMInitArgs vm.\n");}
else { printf("Fail to JNI_GetDefaultJavaVMInitArgs vm.\n"); }
// ’†—ª
nResult = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
if ( nResult == 0 ) { printf("Success to create vm.\n"); }
else { printf("Fail to create vm. [%ld]\n", nResult); return 0; }
// ΋ѻ
return 0;
}

int main(void){ for(int i=0;i<3;i++){ hoge(); } return0; }

‚±‚ñ‚ÈŠ´‚¶‚̃R[ƒh‚ðŽÀs‚·‚邯Cƒ‹[ƒv‚̉‰ñ‚Í HelloVM(Java) executed. ‚ªo—Í‚³‚ê‚Ü‚·D
‚µ‚©‚µƒ‹[ƒv‚Ì2‰ñ–Ú‚Í Fail to create vm. ‚ªo—Í‚³‚ê‚Ü‚·D
‚±‚Ì‚±‚Æ‚©‚çJVM‚Ì쬂Ɏ¸”s‚µ‚½‚Æl‚¦‚Ü‚µ‚½D
# “–‘R‚Å‚·‚ªã‹L‚̂悤‚ȃ‹[ƒv‚ðŠÜ‚܂Ȃ¢JNI‚̃vƒƒOƒ‰ƒ€‚ͳí‚É“®ì‚µ‚Ü‚·D

Œ»Ý‚Í AttachCurrentThread ‚Æ DetachCurrentThread ‚ªC
ŠÖ˜A‚·‚é‚̂ł͂Ȃ¢‚©‚ÆŽv‚Á‚Ä‚¢‚é‚̂ł·‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·‚Å‚µ‚傤‚©D

413:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/12 09:51:15
ƒGƒ‰[ƒR[ƒhEEE

414:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/12 14:03:45
>>412
ƒGƒ‰[ƒR[ƒh‚ðo‚µÉ‚µ‚Ý‚·‚é‚Ì‚Í@‹³ã‚Ì——R‚©H‚à‚¤“š‚¦‚é‹C‚È‚­‚µ‚½B

415:409
05/02/12 15:59:55
‚ [‚·‚¢‚Ü‚¹‚ñorz

ƒGƒ‰[ƒR[ƒh‚Í -1 ‚ª•Ô‚Á‚Ä‚«‚Ä‚¢‚é‚̂ł·‚ª jni.h ‚ÅŠm”F‚µ‚½‚Æ‚±‚ë
JNI_ERR (-1) /* unknown error */
‚Á‚Ä‚±‚Æ‚ÍcŒ´ˆö‚͉½‚È‚ñ‚Å‚µ‚åD

416:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/13 23:58:42
DLL‚©‚çJava‚̃ƒ\ƒbƒh‚Á‚ČĂׂéH

417:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/14 00:30:03
’´ŒÄ‚ׂéBŒÄ‚т܂­‚èB

418:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/14 02:40:44
>>417
‚¨‚§JNI‚Á‚Ħ‚¢‚ñ‚¾

‚»‚ê‚Á‚ÄDLL‚Ì’†‚ÅJVM‚ð쬂µ‚ÄH
‚»‚ê‚Æ‚à‚æ‚­‚ ‚éƒTƒ“ƒvƒ‹‚Ý‚½‚¢‚ɃR[ƒ‹ƒoƒbƒN‚Å‚Á‚ĈӖ¡‚ÅH


419:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/14 09:23:52
‚Ç‚Á‚¿‚ª‚â‚肽‚¢‚ñH
‚Ù‚Æ‚ñ‚Ç‚ÌꇂÍnative method‚ÌŽÀ‘•‚Å‚·‚Þ‚Í‚¸‚¾‚¯‚ÇEEE

420:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/14 11:04:52
‚Ç‚Á‚¿‚ÄŒ¾‚¢‚Ü‚·‚©c

EXE¨DLL¨Java‚̃ƒ\ƒbƒh‚Á‚ÄŠ´‚¶‚É‚µ‚½‚¢‚ñ‚Å‚·
‚»‚ê‚Å•’Ê‚ÉEXE‚©‚çJava‚̃ƒ\ƒbƒh‚ðŒÄ‚Ô•û–@‚Í•ª‚©‚é‚ñ‚Å‚·
‚Å‚àDLL‚Ì’†‚ÅJVM‚ð쬂µ‚ČĂԕû–@‚ðŽŽ‚µ‚Ä‚¢‚ÄŽ¸”s‚µ‚Ä‚é‚ñ‚Å‚·
ClassFind‚Á‚ÄŠÖ”‚ÅŽ¸”s‚µ‚Ä‚é‚ñ‚ÅAƒNƒ‰ƒXƒpƒX‚ÌÝ’è‚ ‚½‚è‚©‚à‚µ‚ê‚È‚¢‚ñ‚Å‚·‚¯‚Çorz

‚»‚ê‚Å>>418‚ÌŽ¿–â‚ð‚µ‚½‚ñ‚Å‚·
‚Ç‚¤‚©DLL‚Ì’†‚ÅJVM‚ð쬂µ‚ÄA‚»‚±‚©‚çJava‚ðŒÄ‚Ô•û–@‚ð‹³‚¦‚Ä‚­‚¾‚³‚¢


421:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/14 19:30:01
‚¦AClassFind‚̃Gƒ‰[‚ÌŒ´ˆö‚𒲂ׂê‚΂¢‚¢‚ñ‚¶‚á‚È‚¢‚Ì

422:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/02/22 19:48:43
–Ê”’‚»‚¤‚È‚±‚Æ‚â‚Á‚Ä‚é‚È

423:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/06/17 17:21:30
NIO‚Á‚Ä‚¢‚¤‚©DirectByteBuffer‚ð‹ìŽg‚µ‚悤‚º

424:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/06/19 13:16:52
jarƒtƒ@ƒCƒ‹‚ðexe‚ɕϊ·‚·‚éexewrap‚Æ‚¢‚¤ƒc[ƒ‹‚ª‚ ‚éB
‚±‚êƒ\[ƒX‚ðŒöŠJ‚µ‚Ä‚éBJNIŽg‚Á‚ÄVMì‚Á‚½‚èA
exe–„‚ßž‚ÝƒŠƒ\[ƒX‚©‚çƒNƒ‰ƒX‚𶬂µ‚Ä‚¢‚邿‚¤‚Ȃ̂Å
ŽQl‚ɂȂ邩‚à‚µ‚ê‚ñ‚æB

425:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/06/19 13:45:58
DirectByteBuffer‚Á‚ăAƒŒ‚¾‚È
X11‚ÌshmŠg’£‚ÉŽ—‚½‚à‚Ì‚ª‚ ‚é‚È

’P‚È‚éƒoƒCƒg—ñ‚ð‚â‚èŽæ‚è‚·‚éŽù—v‚Á‚Ăǂñ‚È‚à‚ñ‚¾‚낤
‰æ‘œ‚Æ‚©‚©H

426:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/06/19 14:31:18
‚Å‚àƒfƒXƒNƒgƒbƒvã‚ňµ‚¤ƒ^ƒCƒv‚È‚ç’Pƒ‚ȃoƒCƒg—ñ‚Æ‚¢‚¤‚æ‚è
BufferedImage‚Æ‚©‚ňµ‚¤‚±‚Æ‚ª‘½‚¢‚à‚ñ‚¾‚©‚ç
short‚âintŒ^”z—ñ‚Æ‚©‚̂ق¤‚ªƒI[ƒo[ƒwƒbƒh‚à‚È‚¢‚µ•Ö—˜

427:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/06 23:21:04
Linux‚ÅJNI‚ʼn½‚©ˆ—‚ð‚·‚é‚ÆAStackOverflowError‚ª”­¶‚·‚é‚̂ł·‚ªA
‰½‚©î•ñ‚È‚¢‚Å‚µ‚傤‚©H


428:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/06 23:58:15
Windows‚Å‚à“¯‚¶‚­”­¶‚·‚邿
ƒXƒ^ƒbƒN‚Í‚©‚Ȃ謂³‚­‚È‚¢‚Æ“®‚©‚È‚¢–Í—l

JavaŽ©‘̂̃\[ƒXƒR[ƒh‚ðC³‚µ‚ăRƒ“ƒpƒCƒ‹‚µ‚È‚¨‚µ‚ª•K—v

429:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/07 00:06:36
>>425
ByteBuffer‚©‚çIntBuffer‚âShortBuffer‚ɕϊ·‚Å‚«‚é‚©‚ç–³–â‘è

430:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/07 00:20:21
>>428
Windows‚Å“¯‚¶ƒ\[ƒXiƒlƒCƒeƒBƒuƒR[ƒh‚Íœ‚­B‚½‚¾‚µAˆ—“à—e‚Í“¯‚¶j‚𑖂点‚Ä‚à
StackOverflowError ‚Í”­¶‚µ‚È‚¢‚Ì‚ÉLinux‚ł͔­¶‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·B
‰½‚ªŒ´ˆö‚Ȃ̂©’²‚ׂéŽè’i‚¾‚¯‚Å‚àƒAƒhƒoƒCƒX‚à‚炦‚È‚¢‚Å‚µ‚傤‚©H


431:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/07 00:48:35
ƒXƒ^ƒbƒNƒTƒCƒY‚ðŽw’è‚·‚ê‚΂¢‚¢‚ñ‚łȂ¢‚©‚Ì‚§H
URLØÝ¸(66.102.7.104)


432:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/07 00:57:08
Žc”O‚È‚ª‚çJNI‚̃Xƒ^ƒbƒNƒTƒCƒY‚Í—LŒø‚ɂȂç‚È‚¢‚æ

433:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/07 00:58:14
>>430
JavaŽ©‘̂̃Rƒ“ƒpƒCƒ‹‚Á‚Ă̂ÍVM‚Ì‚±‚Æ‚Ë

J2SE5.0‚ÌV‚µ‚¢ƒ‰ƒCƒZƒ“ƒX‚Ń_ƒEƒ“ƒ[ƒh‚µ‚ăRƒ“ƒpƒCƒ‹‚µ‚È‚¨‚·‚µ‚©‚È‚¢


434:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/07 20:52:39
>>433
Žc”O‚È‚ª‚çAƒAƒvƒŠ‚Ì”z•z‚ðVM‚ƈê‚ɂƂ¢‚¤–ó‚ɂ͂¢‚©‚È‚¢‚Ì‚Å
‰½‚©ˆá‚¤•û–@‚ð’T‚µ‚Ă݂܂·B
‚¿‚Ȃ݂ÉAJNI‚ÉŠÖ‚í‚è‚Ì–³‚¢‚Æ‚±‚ë‚Å‚ÍA‘Š“–—ʂ̃Xƒ^ƒbƒN‚ðŽg‚Á‚Ä‚àƒI[ƒo[ƒtƒ[‚µ‚Ä‚¢‚Ü‚¹‚ñB

435:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/07 21:06:17
>>434
“–‚½‚è‘O
Java‚̃Xƒ^ƒbƒN‚Ƃ͂܂Á‚½‚­•Ê•¨‚¾‚µ

436:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/07/08 00:21:16
Œ´ˆö‚ª•ª‚©‚è‚Ü‚µ‚½B
ƒlƒCƒeƒBƒu‘¤‚̃ƒ‚ƒŠƒŠ[ƒN‚ÉAƒK[ƒxƒbƒW‚ªd‚È‚Á‚½‚Æ‚«‚ÉVM‚ªƒAƒ{[ƒg‚µ‚Ä‚¢‚Ü‚µ‚½B
‚Ç‚¤‚è‚Å“Á’è‚ÌêŠ‚Å—Ž‚¿‚È‚¢–ó‚Å‚·B
StackOverflowError‚ÍVM‚ªˆÙí‚Èó‘Ԃ̂Ƃ«‚ɃXƒ[‚³‚ê‚Ä‚¢‚½‚Ì‚ÅA
‹°‚ç‚­ŠÖ”ƒ|ƒCƒ“ƒ^‚ªƒYƒŒ‚½‚¹‚¢‚¾‚ÆŽv‚¢‚Ü‚·B


437:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/10/02 14:10:30
>>425
‹TƒŒƒX‚₯‚ÇA
DDA‚Æ‚©Amemory mapped I/O‚Æ‚©A
“Á‚É‘g‚Ýž‚Ý‚ÅVRAM‚È‚ñ‚©‚ÉŽg‚¤‚ñ‚Å‚µ‚åB

438:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/10/04 15:07:02
DLL ‚©‚ç JNI ‚ðŒÄ‚Ôê‡ADestroyJavaVM()‚ÍA‘¼‚ÉJavaVM‚ðŽg—p’†‚Ì
ƒXƒŒƒbƒh‚ª‘¶Ý‚·‚邯 JavaVM ‚ªƒAƒ“ƒ[ƒh‚Å‚«‚È‚¢‚Ý‚½‚¢B
iDestroyJavaVM() ‚ÅI—¹‚Ü‚¿‚ɂȂéEEEj

‹­§“I‚É DestroyJavaVM() ‚ÅJavaVM‚ðƒAƒ“ƒ[ƒh‚·‚é•û–@‚Á‚Ä‚ ‚é‚ÌH

439:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/10/04 17:07:35
‚¦[‚ÆAƒ}ƒ‹ƒ`ƒXƒŒƒbƒhƒvƒƒOƒ‰ƒ~ƒ“ƒO‚ÌŠî–{‚È‚ñ‚Å‚·‚ªA
ƒXƒŒƒbƒh‚ÍAŠeXŽ©•ª‚ÌÓ”C‚É‚¨‚¢‚ÄAI—¹ˆ—‚ðs‚¤‚ׂ«‚Å‚·B
// Thread.stop()‚ªdeprecated‚Å‚ ‚é‚̂Ɠ¯‚¶——RB
‚Å‚·‚©‚çAJVM“à‚Å‚«‚¿‚ñ‚ÆThread‚ÌI—¹‚ðs‚¤‚Ì‚ª³“–‚È‚â‚è•û‚Å‚·B

‚Ç‚¤‚µ‚Ä‚à‹­§“I‚ÉI—¹‚µ‚½‚¯‚ê‚ÎA
JVM‚̂Ȃ©‚Ådeprecated‚ÈThread.stop()‚ð‹¸³I—¹—p‚Ìmethod‚ÅŽg‚Á‚Ă݂Ă­‚¾‚³‚¢B
URLØÝ¸(java.sun.com)

440:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/12/19 19:39:34
C‚Åì‚Á‚½ƒNƒ‰ƒXƒCƒ“ƒXƒ^ƒ“ƒX‚â\‘¢‘Ì‚ðJava‚É“n‚·‚±‚Ƃ͉”\H
Java‚ÅŽg‚¦‚È‚­‚Ä‚àAŽŸ‚ÌDLL‚ÌŠÖ”ŒÄ‚тɎg‚¤‚½‚ß‚É

441:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/12/21 09:03:27
long’l‚Ƀ|ƒCƒ“ƒ^‚‚Á‚±‚à‚¤‚º

442:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/12/21 20:11:40
‚»‚ê‚ÅDLL‘¤‚Åì‚Á‚½ƒƒ‚ƒŠ‚̗̈悪•Û‚½‚ê‚é‚Ì‚©B
C‚ÆJava•ʌ‚Él‚¦‚Ä‚½‚¯‚ÇA•’ʂɎg‚¦‚é‚Ì‚ËB
‚â‚Á‚Ă݂éB

443:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
05/12/21 23:30:29
•Û‚½‚ê‚Í‚¹‚ñ‚¾‚ëB’P‚È‚éƒ|ƒCƒ“ƒ^‚¾‚µB


444:ƒn[ƒsƒB
05/12/24 01:08:28
EEÞEÖɼ@ƒ444¹Þ¯Ä♫

445:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/02/15 11:09:40
Á‚¦‚¿‚á–ܑ̂Ȃ¢‚Ì‚Åage‚¿‚á‚¢‚Ü‚·

446:ƒfƒtƒH
06/03/18 14:47:41
‚Ó‚ñ‚Æ‚¾‚à‚Á‚¾‚¢‚ËB

447:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/03/24 11:41:57
BufferƒNƒ‰ƒX‚Á‚Ä
JNI‚ÅŽÀ‘•‚³‚ê‚Ä‚é‚ñ‚¾‚æ‚Ë

448:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/03/27 14:03:54
ŠO•”ƒƒ‚ƒŠ‚ðŽæ‚é‚â‚‚ª‚ ‚é‚©‚ç‚È

449:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/09 08:02:11
void getValues(long &x, long &y);
‚̂悤‚ÈŠÖ”‚ðJNI‚ŌĂт½‚¢‚̂ł·‚ªA
‚»‚ê‚É‚Íx, y ‚ðƒƒ“ƒo[‚ÉŽ‚ƒIƒuƒWƒFƒNƒg‚ðŽg‚¤
‚µ‚©‚È‚¢‚̂łµ‚傤‚©H

450:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/09 21:19:38
‚»‚¤B
‚ ‚Æ‚»‚ÌŽ¿–â‚ÉJNI‚ÍŠÖŒW‚È‚¢B

451:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/15 16:32:50
cygwinŠÂ‹«‚Åjava“®‚©‚µ‚Ä‚é‚ñ‚¾‚¯‚Ç.so‚Á‚ēǂݞ‚Þ•û–@‚Á‚Ä‚ ‚é‚©‚ÈH

452:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/17 08:22:40
Windows XP SP2
Java 2 SDK 5
Java‚©‚çDLL“à‚ÌC‚ÌŠÖ”ŒÄ‚Ño‚µ‚ÄA‚³‚ç‚É‚»‚ÌC‚ÌŠÖ”‚Ì’†‚©‚ç
Java‚̃ƒ\ƒbƒhŒÄ‚Ño‚·‚±‚Ƃ͂ł«‚é‚ñ‚¾‚¯‚ÇA
C‚©‚çJNI_CreateVM‚Å’¼ÚJava VM‚𶬂µ‚悤‚Æ‚·‚邯ޏ”s‚µ‚Ü‚·B
ã‹L‚̊‹«‚ɉÁ‚¦‚Äjvm.dll‚ɃpƒX‚ª’Ê‚Á‚Ä‚¢‚邾‚¯‚ł͂¾‚߂Ȃñ‚Å‚µ‚傤‚©H
JNI_CreateVM‚Ì–ß‚è’l‚Í-1‚Å‚·B


453:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/17 10:08:07
‚·‚݂܂¹‚ñAJNI_CreateJavaVM ‚̊ԈႢ‚Å‚µ‚½B
JRE‚ðƒCƒ“ƒXƒR‚·‚邯 C:\Windows\java.exe ‚ª
ƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚é‚Ì‚ÅAJava ƒvƒƒOƒ‰ƒ€‚ð
ŽÀs‚µ‚Ä‚¢‚镪‚ɂ̓pƒX‚Ì‚±‚Æ‚ð‹C‚É‚µ‚È‚­‚Ä‚à‚¢‚¢‚ñ‚Å‚·‚ªA
JNI ‚Å‚²‚育‚è—V‚Ԃɂ͂¢‚ë‚¢‚ë‚ÆƒpƒX‚ð’Ê‚³‚È‚­‚Ä‚Í
‚È‚è‚Ü‚¹‚ñ‚©H–Ê“|‚Ȃ̂ŃlƒCƒeƒBƒuƒvƒƒOƒ‰ƒ€‚Æ
“¯‚¶ƒfƒBƒŒƒNƒgƒŠ‚É jvm.dll ‚ðƒRƒs[‚µ‚Ä‚é‚ñ‚Å‚·‚ªB

454:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/17 13:20:39
> “¯‚¶ƒfƒBƒŒƒNƒgƒŠ‚É jvm.dll ‚ðƒRƒs[‚µ‚Ä‚é‚ñ‚Å‚·‚ªB
‚±‚ꂪŒ´ˆö‚ÆŒ©‚½B

455:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/17 13:26:35
>>454 ‚â‚Á‚Ï‚»‚¤‚Å‚·‚©EEE
Windows ‚Å JNI ‚Å—V‚ñ‚Å‚éŠF‚³‚ñA
‚æ‚©‚Á‚½‚çJavaŠÖ˜A‚ł͂ǂ±‚ÉPATH‚ð’Ê‚µ‚Ă邩A
‚³‚炵‚Ä‚à‚炦‚Ü‚¹‚ñ‚©HH

>>452 ‚̂悤‚É Java ƒAƒvƒŠ‚©‚çŒÄ‚Ño‚µ‚½
C ‚ÌŠÖ”‚©‚çA‚³‚ç‚É Java ‚̃ƒ\ƒbƒh‚ð
ƒR[ƒ‹ƒoƒbƒN‚³‚¹‚邱‚Ƃ͂ł«‚Ä‚¢‚é‚Ì‚ÅA
‚Ü‚Á‚½‚­‰½‚à‚©‚à‚ª‚¤‚Ü‚­‚¢‚Á‚Ä‚¢‚È‚¢A
‚Æ‚¢‚¤‚킯‚¶‚á‚È‚¢‚ÆŽv‚¤‚ñ‚Å‚·B

456:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/17 15:09:26
‘§’·‚¥‚È‚±‚̃XƒŒB

457:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/18 00:04:55
Java Forums - can't create java vm ... setting path for jvm.dll
URLØÝ¸(forum.java.sun.com)
‚±‚Ì•Ó‚à’­‚߂Ȃª‚ç‚à‚¤‚¢‚Á‚Ø‚ñƒgƒ‰ƒC‚µ‚Ă݂܂·B

458:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/19 02:48:31
Ž¿–â‚Å‚·B
Java 5‚©‚瓱“ü‚³‚ꂽƒAƒmƒe[ƒVƒ‡ƒ“î•ñi“Á‚ɃNƒ‰ƒX‚É–„‚ßž‚ñ‚Å‚ ‚éƒ^ƒCƒv‚Ì‚à‚Ìj‚ÉA
JNI‚©‚çƒAƒNƒZƒX‚Å‚«‚é‚̂łµ‚傤‚©B

Sun‚̃TƒCƒg‚ÉJNI 5.0‚Æ‚©‚¢‚¤‚Ì‚ª‚ ‚Á‚½‚̂Ō©‚Ä‚½‚̂ł·‚ªA‚»‚ê‚炵‚¢‚à‚̂͌©‚‚©‚è
‚Ü‚¹‚ñ‚Å‚µ‚½B‚Ç‚ñ‚È‚à‚̂łµ‚傤‚©B

459:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/04/19 08:33:43
JAVA‚©‚çJVM‚̃ƒŠƒbƒg‚ð‚È‚­‚µ‚½‚çƒfƒƒŠƒbƒg‚µ‚©Žc‚ç‚È‚¢

460:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/05/22 09:43:09
JNI‚ŃlƒCƒeƒBƒu‚ÌDLL‚ðŒÄ‚Ño‚·JAVAƒAƒvƒŠì‚Á‚½‚ñ‚¾‚¯‚ÇA
JARƒtƒ@ƒCƒ‹‚É‚Ü‚Æ‚ß‚é‚Æ“®‚¢‚Ä‚­‚ê‚È‚¢‚æBiƒGƒ‰[‚ào‚¸‚ɉ½‚à”½‰ž–³‚­I—¹‚·‚éj
JARƒtƒ@ƒCƒ‹’†‚ÌDLL‚ð“ǂݞ‚Þ‚É‚ÍloadLibrary‚©load‚¶‚á‚È‚­‚Ä
findLibrary‚©‚Ȃɂ©‚œǂݞ‚߂Ηǂ¢‚ÌH

461:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/05/22 10:00:30
>>460
•W€‚ÌJNI‚̃[ƒ_[‚Íjar‚ɑΉž‚µ‚Ä‚½‚Á‚¯H
ƒlƒCƒeƒBƒu‚̃tƒ@ƒCƒ‹ƒVƒXƒeƒ€‚É’u‚¢‚Ä–³‚¢‚ƃ_ƒ‚¶‚á‚È‚¢‚Ì‚©H

462:460
06/05/22 14:03:16
>>461
‘¦ƒŒƒX‚ ‚ñ‚ª‚ÆB
ƒŒƒX424‚Ìexewrap‚ðŽg‚Á‚ÄGUI‚Åexe‚É‚µ‚Ä‚Ý‚é‚Æ

java.lang.UnsatisfiedLinkError: no dllname in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
ˆÈ‰º—ª
‚Á‚ăGƒ‰[ƒƒOo‚Ä‚½‚Ì‚ÅDLL“ǂ߂ĂȂ¢‚Ý‚½‚¢‚Å‚·B

ŽŽ‚µ‚ÉADLL‚ðŠÜ‚ß‚¸‚ÉJARì‚Á‚ÄA•Ê“rƒtƒ‹ƒpƒXŽw’è‚ÅHDDã‚ÌDLL‚ðload‚·‚邯
“®‚«‚Ü‚µ‚½B

463:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/05/22 14:44:43
DLL‚ÍJava‚ÌŽd‘g‚݂ł͂Ȃ­Windows‚ÌŽd‘g‚Ý‚¾‚©‚ç‚ÈB

464:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/06/27 09:56:25
>>462
URLØÝ¸(www-06.ibm.com)

465:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/04 21:18:40
Žž‹‹‚P‚O‚O‚O‰~‚Å‚i‚‚–‚‹³‚¦‚Ä‚­‚¾‚³‚é‚©‚½‚ð•åW‚µ‚Ü‚·
êŠ@Š‘òi’r‘ÜE‚“c”nê‚©‚ç’¼’Êj

‚‰|‚—‚‚Ž‚”|‚”‚|‚“‚”‚•‚„‚™|‚Š‚‚–‚—‚ˆ‚‚”‚‚‚‰‚ŒD‚ƒ‚D‚Š‚
iƒAƒhƒŒƒX‚Í‘SŠp‚Å‘‚¢‚Ä‚ ‚é‚̂Ŕ¼Šp‚É’¼‚µ‚Ä‚­‚¾‚³‚¢j
‚æ‚낵‚­‚¨‚Ë‚ª‚¢‚µ‚Ü‚·

466:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/05 02:21:36
ƒRƒ“ƒrƒj‚̃oƒCƒg‚æ‚èˆÀ‚¢‚Å‚·‚ªA‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

467:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/05 21:37:03
‚à‚¿Œð’Ê”ï•Ê‚¾‚æ‚È

468:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/05 23:55:10
’l’iŒð‚µ‚½‚çAŽž‹‹ã‚°‚Ä‚­‚ꂽ

469:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/12 10:54:51
‚Í‚¶‚߂܂µ‚ÄC¡‚Ü‚ÅJava‚µ‚©G‚Á‚½‚±‚Æ‚ª‚È‚©‚Á‚½‚̂ł·‚ªC

470:469
06/07/12 11:11:20
‚·‚݂܂¹‚ñCŠÔˆá‚¦‚ăGƒ“ƒ^[‰Ÿ‚µ‚¿‚á‚¢‚Ü‚µ‚½GG
Win32API‚ðŽg‚¤•K—v‚ª‚ ‚èCJNI‚É‚ðŽg‚¢Žn‚ß‚½‚à‚̂ł·D

C++‘¤‚Å‚©‚ç“n‚³‚ꂽStringŒ^‚̈ø”‚ÍjcharŒ^‚Æ‚µ‚Ĉµ‚¤‚悤‚Ȃ̂ł·‚ªC
jchar¨WCHAR‚̕ϊ·‚͂ǂ̂悤‚É‚·‚ê‚΂悢‚̂łµ‚傤‚©H

const WCHAR *Uni = env->GetStringChars(jstring, NULL);

‚̂悤‚É‚·‚ê‚Ε’Ê‚ÉWCHARŒ`Ž®‚Æ‚µ‚ÄŽæ‚èž‚ß‚é‚Æ‘‚¢‚Ä‚¢‚éƒy[ƒW‚à
‚ ‚Á‚½‚̂ł·‚ªC‚±‚¿‚ç‚̊‹«‚Å‚Í

> 'const jchar' ‚©‚ç 'const WCHAR *' ‚ɕϊ·‚Å‚«‚Ü‚¹‚ñB

‚ƃGƒ‰[‚ª‚ł܂·D
URLØÝ¸(www.ki.rim.or.jp)
‚ðŽQl‚É‚µ‚ÄC‚¹‚ß‚ÄWideCharToMultiByte‚ðŽg‚Á‚ÄSHIFT_JIS‚ɕϊ·‚µ‚悤‚Æ‚µ‚Ä‚àC

>'WideCharToMultiByte' : 3 ”Ԗڂ̈ø”‚ð 'const jchar *' ‚©‚ç 'LPCWSTR' ‚ɕϊ·‚Å‚«‚Ü‚¹‚ñB

‚ƃGƒ‰[‚ª‚ł܂·D
‚ǂ̂悤‚É‚·‚ê‚Îjchar¨WCHAR‚̕ϊ·‚ª‚Å‚«‚é‚̂łµ‚傤‚©H
“–•û‚̊‹«‚Í
Java
jdk 1.5.0_06
Eclipse 3.1(Java5‚ŃRƒ“ƒpƒCƒ‹)
c++
VC++2005 Express
‚Å‚·D

471:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/12 13:09:44
CHAR *GetStringFromJstring(JNIEnv *env, jstring jstr)
{
CHAR *sjisCode = 0;
INT32ret = 0;
const jchar *jchr = 0;
INT32jlen = 0;

// jstring‚ªNULL‚ł͂Ȃ¢‚Æ‚«‚݈̂—‚ðs‚¤
if(jstr != NULL)
{
// •¶Žš—ñA•¶Žš’·‚̎擾
jchr = env->GetStringChars(jstr, NULL);
jlen = env->GetStringLength(jstr);

// ƒoƒbƒtƒ@‚ÌŠm•Ûi‚·‚ׂĂQƒoƒCƒg•¶Žš‚¾‚Á‚½ê‡‚ð‘z’èj
sjisCode = (CHAR *)malloc(jlen * 2 + 1);
if (sjisCode != NULL)
{// ƒƒ‚ƒŠŠm•Û¬Œ÷
memset(sjisCode, 0, (jlen * 2 + 1));
// ƒR[ƒh•ÏŠ·
ret = WideCharToMultiByte(CP_ACP, 0, jchr, jlen, sjisCode, jlen * 2 + 1, NULL, NULL);
sjisCode[ret] = '\0';
}

// Žæ“¾•¶Žš—ñ‚ÌŠJ•ú
env->ReleaseStringChars(jstr, jchr);
}
return sjisCode;
}

472:469
06/07/12 14:15:25
>>471
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·D‘‘¬ŽŽ‚µ‚Ă݂܂·D
‚Ü‚½‰½‚©‚ ‚Á‚½‚çC‘‚«ž‚Þ‚©‚à‚µ‚ê‚È‚¢‚̂łæ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·D

473:469
06/07/12 14:25:36
>>471
˜A‘±‚Å‚·‚݂܂¹‚ñD
>ret = WideCharToMultiByte(CP_ACP, 0, jchr, jlen, sjisCode, jlen * 2 + 1, NULL, NULL);
‚â‚Í‚è‚Ì•”•ª‚Å
>3 ”Ԗڂ̈ø”‚ð 'const jchar *' ‚©‚ç 'LPCWSTR' ‚ɕϊ·‚Å‚«‚Ü‚¹‚ñB
‚Æo‚Ä‚µ‚Ü‚¢‚Ü‚·D

‚Ȃɂ©éŒ¾‚ª”²‚¯‚½‚肵‚Ä‚¢‚é‚̂łµ‚傤‚©H


474:471
06/07/12 15:02:49
VisualStudio6.0SP6‚̊‹«‚ł͖â‘è–³‚­ƒRƒ“ƒpƒCƒ‹‚µ‚Ä“®ì‚µ‚Ä‚¨‚è‚Ü‚µ‚½‚ªA
VC++2005 Express‚őʖڂȗ—R‚Í”»‚è‚©‚˂܂·cB

475:471
06/07/12 15:25:57
(LPCWSTR)jchr
–¾Ž¦“I‚ɃLƒƒƒXƒg‚µ‚Ä‚à‘Ê–Ú‚Å‚µ‚傤‚©H

476:469
06/07/12 21:07:20
>>475
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·II
–³Ž–‚ɂł«‚Ü‚µ‚½D¡‚܂ł¸‚Á‚ÆJava‚µ‚©G‚Á‚½‚±‚Æ‚ª‚È‚©‚Á‚½‚̂ł·‚ªC
¡‰ñC++‚ðG‚èŽn‚߂ĉü‚ß‚ÄJava‚Ì‚ ‚肪‚½‚³‚ðŽv‚¢’m‚Á‚Ă܂·D

477:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/17 20:59:54
Žž‹‹‚P‚O‚O‚O‰~‚Å‚i‚‚–‚‹³‚¦‚Ä‚­‚¾‚³‚é‚©‚½‚ð•åW‚µ‚Ü‚·
êŠ@Š‘òi’r‘ÜE‚“c”nê‚©‚ç’¼’Êj
‚æ‚낵‚­‚¨‚Ë‚ª‚¢‚µ‚Ü‚·
‚‰|‚—‚‚Ž‚”|‚”‚|‚“‚”‚•‚„‚™|‚Š‚‚–‚—‚ˆ‚‚”‚‚‚‰‚ŒD‚ƒ‚D‚Š‚
‹³‚¦‚é‘ÎÛ‚Í’´‰SŽÒ‚Å‚·B

ê–åŠwZ‚ȂǂÅJava‚ð•׋­‚³‚ê‚Ä‚¢‚ĉċx‚Ý‚¾‚¯‹³‚¦‚½‚¢‚Æ‚¢‚¤•û‚àŠ½Œ}‚Å‚·


478:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/07/18 05:15:38
> 465-468

479:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/09/05 22:25:34
JNI‚̕׋­‚ð‚µ‚Ä‚¢‚é‚̂ł·‚ªCCPUŽg—p—¦‚̂悤‚ɘA‘±“I‚Ƀf[ƒ^‚ðŽæ“¾‚·‚éÛC
Java‘¤‚©‚çwhileƒ‹[ƒv‚ð‚܂킵‚ĉ½“x‚àdll‚ð“ǂݞ‚Þ‚Æ‚¢‚¤”ñŒø—¦‚È•û–@‚ð‚Æ‚Á‚Ä‚¢‚Ü‚·D
ˆê“xdll‚ðŒÄ‚Ño‚·‚¾‚¯‚ŘA‘±“I‚ɕԂè’l‚ð“ǂݎæ‚é•û–@‚Í‚ ‚é‚̂łµ‚傤‚©
‚²‹³Žö‚¨Šè‚¢‚µ‚Ü‚·D

480:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/09/05 22:36:18
>>479
dll“ǂݞ‚ÞAdllŒÄ‚Ño‚·‚Á‚Ă̂ªA‹ï‘Ì“I‚ɉ½‚ðŽw‚µ‚ÄŒ¾‚Á‚Ä‚é‚Ì‚©‚í‚©‚ç‚ñB

481:479
06/09/07 12:53:19
>>480
Œ¾—t‚ª‘«‚è‚È‚­‚Ä‚·‚݂܂¹‚ñD
dll“ǂݞ‚ÞAdllŒÄ‚Ño‚·‚Æ‚¢‚¤‚Ì‚ÍCƒlƒCƒeƒBƒuƒƒ\ƒbƒh‚ðŽÀs‚·‚邯‚¢‚¤ˆÓ–¡‚Å‘‚«‚Ü‚µ‚½D
Œ»Ý‚̓lƒCƒeƒBƒuƒƒ\ƒbƒhŽÀsŽž‚ÉC•Ô‚è’l‚Æ‚µ‚ÄCPUŽg—p—¦‚ðŽæ“¾‚µ‚Ä‚¢‚é‚̂ł·‚ªC
‚±‚Ì•û–@‚Å‚ÍJava‘¤‚ÅWhileƒ‹[ƒv‚ʼn½“x‚àƒlƒCƒeƒBƒuƒƒ\ƒbƒh‚ðŽÀs‚·‚é•K—v‚ª‚ ‚è‚Ü‚·D
ƒlƒCƒeƒBƒuƒƒ\ƒbƒh‘¤‚ÅWhileƒ‹[ƒv‚ð‚‚©‚Á‚ÄJava‚ɘA‘±“I‚É’l‚ð•Ô‚·•û–@‚Í
‚È‚¢‚̂łµ‚傤‚©

482:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/09/07 18:52:07
>>481
ƒlƒCƒeƒBƒu‘¤‚Å‚Í java.nio.ByteBuffer#allocateDirect(int) ‚Å“¾‚ç‚ê‚éƒoƒbƒtƒ@‚ÉŽž‘‚«ž‚ñ‚Å
Java‘¤‚̓|[ƒŠƒ“ƒO‚·‚邾‚¯A‚Æ‚©‚Ȃ烃\ƒbƒhŒÄ‚Ño‚µ‚Ì•‰‰×‚ÍŒ¸‚é‚©‚à‚µ‚ç‚ñB
‚½‚¾‚µAŽæ‚肱‚Ú‚µ‚ªl‚¦‚ç‚ê‚é‚̂Ŋ®‘S‚ȘA‘±«‚Í•ÛØ‚Å‚«‚È‚¢‚µ
“¯Šúˆ—‚Æ‚©‚ðl‚¦‚邯޿‚舵‚¢‚Í‚©‚È‚è–Ê“|‚ɂȂ邵A
“¯Šúˆ—‚͉ºŽè‚·‚è‚áƒlƒCƒeƒBƒuƒƒ\ƒbƒhŒÄ‚Ño‚µ‚æ‚è‚à‚‚­‚‚­‰Â”\«‚à‚ ‚éB
Ž©•ª‚Ì‹Zp—͂Ƃ©ACPUŽg—p—¦‚ª‚ǂꂾ‚¯•K—v‚Ȃ̂©‚Æ‚©‚ð—Ç‚­l‚¦‚½•û‚ª—Ç‚¢‚©‚àB

‚ÜA— ‹Z“I‚ÈŽ–‚ð‚·‚é‘O‚ɃlƒCƒeƒBƒuƒƒ\ƒbƒhŒÄ‚Ño‚µ‚ª
–{“–‚Ƀ{ƒgƒ‹ƒlƒbƒN‚ɂȂÁ‚Ä‚é‚Ì‚©ŒŸØ‚·‚鎖‚ðƒIƒXƒXƒ‚·‚邯‚Ç‚ËB
‰½‚ÌŒŸØ‚à‚¹‚¸‚ÉAƒlƒCƒeƒBƒuƒƒ\ƒbƒhŒÄ‚Ño‚µ‚ª’x‚¢‚Æ‚©•·‚«‚©‚¶‚Á‚½’ö“x‚È‚çA
ã‹L‚Ý‚½‚¢‚ÈŽ–‚ð‚µ‚Ä‚à–³‘Ê‚¾‚ÆŽv‚¤B

483:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/09/10 12:57:34
>>481
dll‚ÅOS‚̃XƒŒƒbƒhì‚Á‚ÄA‚»‚̃XƒŒƒbƒh‚Åjvm‚ɃAƒ^ƒbƒ`‚µ‚ÄA
whileƒ‹[ƒv‰ñ‚µ‚È‚ª‚çA“KŽžAListenerŒo—R‚ŃR[ƒ‹ƒoƒbƒNB

484:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/09/11 01:39:27
>>483
Œ‹‹ÇƒlƒCƒeƒBƒu->Java‚̃ƒ\ƒbƒhŒÄ‚Ño‚µ‚̃RƒXƒg‚ª•K—v‚ɂȂ邯‚Ç‚ËB

485:–¼–³‚µ‚³‚ñ—‚¨• ‚¢‚Á‚Ï‚¢B
06/12/07 15:12:29
ŠÖ˜Awiki
URLØÝ¸(wiki.ninki.org)


486:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/12/07 19:57:23
C‚Å‘‚¢‚½ƒvƒƒOƒ‰ƒ€ã‚ÅJVM‚𶬂µ‚ÄAƒNƒ‰ƒX‚ðƒ[ƒh‚µ‚悤‚ÆŽv‚Á‚Ä‚é‚ñ‚¾‚¯‚ÇA
Invocation API‚ÅJVM‚ðì‚éƒTƒ“ƒvƒ‹‚ª‚Å‚«‚½‚Ì‚ÅAƒfƒoƒbƒOƒƒbƒZ[ƒW‚ðƒtƒ@ƒCƒ‹‚É‚¾‚»‚¤‚Æ‚µ‚½‚çAƒZƒOƒƒ“ƒe[ƒVƒ‡ƒ“ƒtƒHƒ‹ƒg‚Å—Ž‚¿‚邿‚¤‚ɂȂÁ‚Ä‚µ‚Ü‚Á‚½B
‚¢‚ë‚¢‚ëí‚Á‚Ä‚¢‚Á‚ÄA

FILE* f;

ª‚±‚̈ês‚ª‚ ‚é‚©‚È‚¢‚©‚¾‚¯‚ÅAƒZƒOi‚’‚™‚ª‹N‚«‚é‚©‚Ç‚¤‚©‚ª•Ï‚í‚é‚ñ‚¾‚ªA
‚±‚ê‚Ç‚¤‰ðŒˆ‚µ‚½‚ç‚¢‚¢‚¾‚낤‚©H


487:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
06/12/07 22:19:52
Javaê—p‚ÌCƒRƒ“ƒpƒCƒ‰‚ª‚ ‚Á‚½‚ç‚ȂƂ͎v‚¤B
ƒ\[ƒXƒR[ƒhˆêŽ®ƒZƒbƒg‚µ‚Ä‚¨‚¯‚Î
Ant‚Ý‚½‚¢‚Ì‚ª‘–‚Á‚Ä‚»‚ÌOSŒü‚¯‚Ƀrƒ‹ƒh‚Æ‚©B

dll‚Æ‚©‚¢‚¿‚¢‚¿ì‚点‚é‚Ì‚à”E‚тȂ¢

488:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/04/22 23:55:47
@

489:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/05/26 21:11:12
Java Native Access (JNA): access native libraries with pure Java code.
URLØÝ¸(jna.dev.java.net)
JNative, Java framework for DLL access for Windows and Linux
URLØÝ¸(jnative.free.fr)
nlink: NLink - Native Library Linker:
URLØÝ¸(nlink.dev.java.net)

490:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/05/26 22:56:51
JNI‚Ɖ½‚ªˆá‚¤‚ÌH

491:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/05/26 22:58:03
>>490
Ž©•ª‚ÅˆêØƒlƒCƒeƒBƒuƒR[ƒh‘‚©‚È‚­‚Ä—Ç‚¢“_‚ªˆá‚¤‚ñ‚Å‚ÍH

492:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/05/27 00:12:37
.NET‚Å‚¢‚¤P/Invoke‚̂悤‚È‚à‚ñ‚©H

493:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/06/24 11:08:18
‚·‚݂܂¹‚ñB
Java‚©‚çFortran‚̃vƒƒOƒ‰ƒ€ŒÄ‚Ô‚±‚Æ‚Á‚ĉ”\‚Ȃ̂łµ‚傤‚©H

ŒvŽZˆ—‚ÍFortran‚Å‚â‚Á‚Ä‚ÄA‚»‚ê‚ðJava‚©‚çŒÄ‚Ô•K—v‚ª‚ ‚é‚ñ‚Å‚·‚ªB

494:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/06/24 19:48:04
ƒ‹[ƒ`ƒ“–¼‚ªƒ}ƒ“ƒOƒŠƒ“ƒO‚³‚ê‚È‚¢‚悤‚ɃRƒ“ƒpƒCƒ‹‚·‚ê‚Îo—ˆ‚邯Žv‚¤B
‘å•¶Žš‚ɌŒ肳‚ê‚邯‚©A––”ö‚ɃAƒ“ƒ_[‚ª“ü‚邯‚©‚·‚é‚È‚ç
CŒ¾Œê‚щƒbƒp‚𑂯‚΂¢‚¢B

495:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/27 18:47:25
Java‘¤‚©‚çCƒNƒ‰ƒXƒIƒuƒWƒFƒNƒgŠÛ‚²‚Ɠǂݞ‚ñ‚ÅA’†‚̃ƒ\ƒbƒh§Œä‚µ‚½‚¢‚ñ‚Å‚·‚ªA
‚±‚¤‚¢‚¤Žg‚¢•û‚Á‚ÄJNI‚Åo—ˆ‚é‚ñ‚Å‚µ‚傤‚©H

496:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/27 20:58:38
ƒGƒXƒp[•åW’†

497:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/27 21:44:17
‚Å‚«‚é

498:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/30 12:01:58
jniŽg‚í‚È‚¢‚ÆAmmx, sse‚Æ‚©Žg‚¦‚È‚¢‚ñ‚¾‚ËB

499:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/30 14:34:39
jni‚̌ĂÑo‚µƒI[ƒo[ƒwƒbƒh‚ÅAmmx‚Æ‚©‚̃ƒŠƒbƒg‚«”ò‚Ô—\Š´

500:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/30 19:01:48
‚»‚ê‚Í‹C‚É‚µ‰ß‚¬B
2G‚̃tƒ@ƒCƒ‹‚Æ‚©‚ÉMMX‚·‚é‚Ìl‚¦‚Ă݂Ä

501:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/30 19:09:34
MMXŽg‚Á‚Ä‚àAƒƒ\ƒbƒhŒÄ‚Ño‚µ1‰ñ‚Å 2G‚̃tƒ@ƒCƒ‹ˆ—‚µ‚È‚¢‚ƃyƒC‚µ‚È‚¢‚Ì‚©B

502:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/31 04:49:18
”ä‚ׂé“y•U‚ªˆá‚¤‚ñ‚¶‚á‚È‚¢‚©B
—Ⴆ‚ÎMMX‚ÍJava‚ɂ͂Ȃ¢‹@”\‚È‚ñ‚¾‚ªAJNIŽg—p‚µ‚È‚¢‚Ƃ‚©‚¦‚È‚¢‚킯‚ÅB

503:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/31 05:30:13
‚¢‚݂킩‚ç‚ñ

504:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/31 07:46:43
>>503 ‚¨‚Ü‚¦‚Í ‚ ‚Ù‚©

505:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/31 10:43:39
java vm‚̃\[ƒX‚àŒöŠJ‚³‚ꂽ‚±‚Æ‚¾‚µAjitƒRƒ“ƒpƒCƒ‰‚ðƒnƒbƒN‚µ‚Ä
mmx/sse“™‚ðŽg‚¤‚悤‚É‚µ‚Ă݂é‚Ì‚àŠy‚µ‚¢‚©‚à‚ËI

506:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/31 12:58:02
>>502
>>504
‘¬‚­ˆ—‚ðI‚í‚点‚邱‚Æ‚ª–Ú“I‚Ȃ̂©AMMX‚ðŽg‚¤‚±‚Æ‚ª–Ú“I‚Ȃ̂©B
‘命”‚Ìl‚ɂƂÁ‚Ä‚ÍMMX‚ÍŽè’i‚Å‚ ‚Á‚Ä–Ú“I‚ł͂Ȃ¢B

507:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/07/31 14:54:43
>>503 ‚¨‚Ü‚¦ MMY ‚‚©‚Á‚½‚±‚ƂȂ¢‚¾‚ë

508:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/02 12:00:16
>>506 ‚¨‚Ü‚¦ MMZ ‚‚©‚Á‚½‚±‚ƂȂ¢‚¾‚ë

509:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/02 19:16:27
JNI‚̌ĂÑo‚µA–ß‚µ‚Á‚Ä’x‚¢‚µ‚ËB‚‚©‚¦‚Ë`

510:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/02 19:50:22
MMW‚È‚çŽg‚Á‚½

511:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/02 21:05:37
‚È‚ñ‚ÆI

512:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 08:27:36
JNI‚̂ق¤‚Å‚Ímemcpy‘Š“–
Java‚̂ق¤‚Å‚Íarraycopy‘Š“–

‚Å1000–œ‰ñ‚â‚Á‚½‚¯‚ÇA
native.dll‚̂܂܂ÅA8•bB
native.dll‚ðcl /02 /GD‚ÅÅ“K‰»‚µ‚Ä5•bB
arraycopyŒÄ‚Ño‚µ‚Í1•bB

JNI‚ÌŠÖ”ŒÄ‚Ño‚µ–ß‚µ‚Á‚Ä’x‚¢‚æB
‚Ç‚¤‚É‚à‚È‚ç‚È‚¢‚¾‚낤‚ËB

513:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 09:14:16
ŠÖ”ŒÄ‚Ño‚µ–ß‚µ‚ÌŽžŠÔ‚𑪒肷‚邽‚ß‚ÉA‚¿‚å‚Á‚ÆDLLì‚Á‚ÄŒv‚Á‚Ă݂½B
public static native long callfunc(long q);
public static long callmeth(long q)

‚ÅAˆø”‚ð‰½‚à‚µ‚È‚¢‚ŕԂ·‚¾‚¯Bcl‚Í/Ot /GA
100 000 000i1‰­‰ñj‚ÅA
3435 mill
290 mill
‚¨‚æ‚»10”{BŒÄ‚Ño‚µ‰ñ”‚ªˆÙí‚É‘½‚¢‚ÆAJNI‚Í’x‚·‚¬B

514:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 09:17:11
‚ ‚ AŠÂ‹«‚ÍA
windows 2000
jdk 1.6.0.1
cl vc++ 2005

515:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 11:40:12
JNIƒR[ƒ‹‚ª’x‚¢‚Á‚Ă̂ÍAjavaƒvƒƒOƒ‰ƒ}‚Ì펯B
ŒÄ‚Ño‚µ‚»‚Ì‚à‚Ì‚ª’x‚¢‚Á‚Ä‚Ì‚à‚ ‚邯‚ÇAJNIŠÖ”“à‚ªJVM‚©‚ç‚݂ĕs“§–¾‚Ȃ̂ÅA
Å“K‰»‚Ì‘jŠQ—vˆö‚É‚à‚È‚éB
JNIŽg‚¤‚Ì‚ÍAJVMŒo—R‚ł̓Tƒ|[ƒg‚³‚ê‚È‚¢ƒvƒ‰ƒbƒgƒtƒH[ƒ€ŒÅ—L‚ÌƒŠƒ\[ƒX‚ðŽg‚¤‚Æ‚©A
‰æ‘œˆ—‚Ȃ蔒l‰‰ŽZ‚È‚èACPUƒpƒ[‚É‹­‚­ˆË‘¶‚·‚鈗‚ð‘å‚«‚È’PˆÊ‚ÅC/C++‰»‚µ‚½‚è‚·‚é
‚Æ‚«‚®‚ç‚¢B

516:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 12:55:49
‚Å‚àŒÄ‚Ñ–ß‚µ‚ª’x‚¢‚©‚çA‚»‚Ì‹ê˜J‚ÍA‘ŠŽE‚³‚ê‚éB

517:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 12:58:40
>>500‚ªŒ¾‚¤‚Ý‚½‚¢‚ÉA2G‚Æ‚©‚̃tƒ@ƒCƒ‹ˆ—‚¶‚á‚È‚¢‚ÆŠ„‚ɇ‚í‚ñ‚ËB

518:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 13:11:32
JVM‚Å‚ÍAƒXƒNƒŠƒvƒg‚΂©‚è‚É“ú‚ª‚³‚µ‚Ä‚¢‚邯‚ÇA
JNI‚ª“ú‚Ì–Ú‚ðŒ©‚é‚̂͂¢‚‚Ȃ̂©EE

519:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 16:09:45
‚i‚u‚l“à‚ÉŽæ‚螂߂΂¢‚¢‚¾‚¯‚̘b‚¾‚ë
ƒI[ƒvƒ“ƒ\[ƒX‚È‚ñ‚¾‚µ

520:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 16:13:36
JVM“à‚ÉŽæ‚螂ނÁ‚ÄA‚Ç[‚ä[Ž–H

521:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/03 16:22:38
>>517
‚»‚ꂾ‚¯Java‚ài‰»‚µ‚½‚à‚Ì‚¾‚Ƃ‚­‚­Žv‚¤

522:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 07:18:12
>>520
JNI‚È‚µ‚ŃlƒCƒeƒBƒu‚ðŒÄ‚Ño‚·

523:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 09:43:46
‚µ‚©‚µAŠÖ”ŒÄ‚Ño‚µ‚ª‚±‚ê‚Ù‚Ç’x‚¢‚Ƃ͂¨‚à‚í‚È‚ñ‚¾B
1‰­‰ñ‚àŒÄ‚Ño‚·‚±‚Ƃ͂Ȃ¢‚©‚à‚µ‚ê‚ñ‚ªA100–œ‰ñ‚®‚ç‚¢‚Í•’ʂɂ ‚邾‚ëB
in.read()‚ð100–œ‰ñ‚¾‚ÆA‚PG‚̃tƒ@ƒCƒ‹ˆ—‚ɂȂ邩‚çB

524:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 09:45:58
100–œ‚Å1Mƒtƒ@ƒCƒ‹‚¾‚Á‚½B

525:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 12:01:59
>>522
GCŠÇ—ŠO‚ɃIƒuƒWƒFƒNƒgŽ‚¿o‚·‚½‚߂̀”õ‚ÍJNI‚łȂ­‚Ä‚à•K—v‚ɂȂ邾‚낤‚µA
JITƒRƒ“ƒpƒCƒ‰‚ªƒlƒCƒeƒBƒuƒR[ƒh‚ÆJava‚̃R[ƒh‚𬂺‚ÄÅ“K‰»‚Á‚Ă̂àŠú‘Ò‚Å‚«‚È‚¢‚©‚ç
‰¼‚ÉJNI‚È‚µ‚ŃlƒCƒeƒBƒuŒÄ‚Ño‚µ‚µ‚Ä‚àAŒÄ‚Ño‚µƒRƒXƒg‚ª‚‚­‚È‚é‚͕̂ςí‚ç‚ñ‚ÆŽv‚¤‚æB

Šú‘Ò‚Å‚«‚é‚Ì‚ÍJNI‚Á‚Ä–¼‘O‚ª•Ï‚í‚鎖‚®‚ç‚¢‚©B

526:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 12:03:27
‚ñ‚È‚±‚½‚È‚¢B

527:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 12:10:10
>>523-524
‚»‚䂱‚ÆB

FileInputStream ‚Å1ƒoƒCƒg“ǂݞ‚Ý‚Ì read() ˜A”­‚·‚邯–Å’ƒ‹ê’ƒ’x‚­‚Ȃ邵‚ËB

528:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 14:06:31
>>527
ƒ`ƒ}ƒ`ƒ}‚â‚Á‚½‚Æ‚µ‚Ä‚àAŽÀÛ–â‘èAOS‚Ì•û‚Ńoƒbƒtƒ@‚³‚ê‚Ä‚é‚ñ‚¶‚á‚È‚¢‚©H

529:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 14:09:29
‚¢‚âAJNI‚̌ĂÑo‚µƒRƒXƒg‚̘b

530:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 14:14:20
>>525
—áŠO‚ð Java‘¤‚ɃXƒ[‚·‚éÛ‚ÌŒãŽn––‚Æ‚©‚à‚ ‚邵B

531:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 14:49:16
>>529 ‚»‚¤‚¾‚Á‚½B

532:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 14:51:07
‚Æ‚¢‚Á‚Ä‚àAŽÀÛ–â‘è‚Å‚Í2G‚̃tƒ@ƒCƒ‹“ǂݞ‚ނ킯‚ł͂Ȃ¢‚µA
‚Þ‚¿‚á‚­‚¿‚á’x‚¢‚Á‚ÄŽ–‚͂Ȃ¢‚¾‚ëB‚¹‚¢‚º‚¢jpeg‚Å1,2•b‚Ü‚¿B

533:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 14:56:55
‚ׂ‚ÉJava‚¶‚á–³‚­‚Ä‚àAƒtƒ@ƒCƒ‹“ǂݞ‚݂̓lƒCƒeƒBƒu‚Å‚à‚»‚ê‚®‚ç‚¢ŽžŠÔ‚©‚©‚邵B

534:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 15:03:09
ƒtƒ@ƒCƒ‹“ǂݞ‚Ý‚ª’x‚¢‚Á‚ÄŒ¾‚Á‚Ä‚é‚ñ‚¶‚á‚È‚­‚ÄA
JNI‚̌ĂÑo‚µ‰ñ”‚ð‘‚â‚·‚Æ’x‚­‚È‚é‚Á‚Ęb‚È‚ñ‚¾‚ªB

FileInputStream#read() ‚Å 1ƒoƒCƒg‚¸‚“ǂݞ‚Þ‚Ì‚Æ
FileInputStream#read(byte[]) ‚Å 1024ƒoƒCƒg‚¸‚“ǂނ̂Ƃð”ä‚ׂ½‚ç
ŒãŽÒ‚Ì•û‚ªˆ³“|“I‚É‘¬‚¢B

535:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 15:08:15
‚ ‚ A‚í‚©‚Á‚Ä‚éB
ƒtƒ@ƒCƒ‹“ǂݞ‚Ý(IO)‚ÍAJava‚̃AƒvƒŠ‚¶‚á‚È‚­‚ÄAƒlƒCƒeƒBƒu‚̃AƒvƒŠ‚Å‚â‚Á‚Ä‚àA
i1Mj‚Í1•b‚®‚ç‚¢‚©‚©‚é‚©‚çA‘ÌŠ´‚ł͕ςí‚ç‚È‚¢‚Á‚Ä‚±‚Æ‚ª‚¢‚¢‚½‚©‚Á‚½‚¾‚¯B

JNI‚ÍIO‚ł͎d•û‚È‚­Žg‚¤‚±‚ƂɂȂ邯‚ÇA
‚»‚ê‚æ‚ècodec‚Æ‚©zip‚Æ‚©awt‚ÅŠˆ–ô‚·‚é‚ñ‚¾‚낤‚ÆŽv‚¤B

536:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 15:20:24
“®‰æ—pcodec‚Æ‚©awt‚àƒn[ƒh‚Ì‹@”\Žg‚Á‚½‚è‚·‚é‰Â”\«l‚¦‚邯ƒlƒCƒeƒBƒu‚É‚¹‚´‚é‚𓾂Ȃ¢‚Å‚µ‚åB

zip‚àAƒu[ƒgƒXƒgƒ‰ƒbƒvƒNƒ‰ƒXƒ[ƒ_‚̉Šú’iŠK‚Å‚Í java.util.zip‚ªƒ[ƒh‚Å‚«‚ĂȂ¢’iŠK‚Å
zipƒtƒ@ƒCƒ‹‚©‚çclassƒtƒ@ƒCƒ‹‚ð“ǂݞ‚Þ•K—v‚ðl‚¦‚邯A
ƒlƒCƒeƒBƒu‚Åzlib‘Š“–‚̃‰ƒCƒuƒ‰ƒŠ‚ðŽ‚Á‚Ä–³‚¢‚ƃ_ƒ‚Á‚Û‚¢B

537:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 15:26:41
Java‚ÍC‚æ‚葬‚¢‚©‚çAIOˆÈŠO‚ÌꊂÅnative‚ðŽg‚¤——R‚͂Ȃ¢B

538:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 15:28:11
‚æ‚Á‚Ä‘S‚Ẵ‰ƒCƒuƒ‰ƒŠ‚Í100% pure java‚Å쬂³‚ê‚é‚ׂ«B

539:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 15:47:44
>>536
ŋ߂ÍDRM‚Æ‚©‚ ‚é‚©‚çAƒn[ƒh‚Ì‹@”\‚¾‚¯‚¶‚á‚È‚¢‚©‚à‚µ‚ê‚ñ‚ÈB

540:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 17:10:30
JNI‚ÍJava‚æ‚葬‚¢‚©‚Ç‚¤‚©‚ÅŽg‚¤‘㕨‚ł͂Ȃ¢‚ÈB
Hackê—pB‚ŽŸŒ³‹Z”\ŽÒê—pB‚µ‚½‚ª‚Á‚ăVƒƒƒAê—pB

541:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 17:16:26
JNI‚È‚ñ‚ÄŽd•û‚È‚­Žg‚¤‚à‚ñ‚¾‚ëH“DL‚³‚̋ɒvB

@ƒoƒbƒhƒmƒEƒnƒE

‚¾‚ÈB

542:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 17:21:42
JAM‚Ì“oê‚Å‚»‚¤‚àŒ¾‚Á‚Ä‚ç‚ê‚È‚­‚Ȃ邩‚à‚ÈB
jar‚âdll‚ð–„‚ßž‚߂邿‚¤‚ɂȂ邩‚çA€•W€VM‚Ì‚²‚Æ‚­
Žd—l‚ðŠg’£‚µ‚Ä‚­‚é’c‘Ì‚ªŒ»‚ê‚Ä‚à•sŽv‹c‚¶‚á‚È‚¢B

543:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/04 22:47:28
>ƒoƒbƒhƒmƒEƒnƒE
‚Ç‚¤‚¢‚¤ˆÓ–¡H

>JAM‚Ì“oê‚Å‚»‚¤‚àŒ¾‚Á‚Ä‚ç‚ê‚È‚­‚Ȃ邩‚à‚È
JNI‚ÆŠÖŒW‚È‚¢‚ÆŽv‚¤‚¯‚ÇB

544:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 00:21:22
‚Þ‚¿‚á‚­‚¿‚áŠÖŒW‚ ‚邾‚ë

545:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 00:55:50
‚‚©adobe air‚ª‚ ‚é‚̂Ɋ撣‚éˆÓ–¡‚ ‚ñ‚ÌH

546:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 01:02:35
ApolloŽ©‘̂Ɋ撣‚éˆÓ–¡‚ª‚È‚¢‚ÆŽv‚¤‚ñ‚¾‚ªA‚»‚ê‚æ‚è‚È‚ºJNIƒXƒŒ‚ÅH

547:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 08:49:12
>>541 ŒN‚ÍJNI‚ðˆê¶á‚邱‚Ƃ͂Ȃ¢‚¾‚낤

548:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 09:39:57
>>547
Žd•û‚È‚­Žg‚¤‚¾‚ëB

549:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 13:11:00
>>544 ‚¢‚Ü‚¢‚¿ƒsƒ“‚Æ—ˆ‚È‚¢

550:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 15:52:33
JNI‚â‚邯A.dll‚Æ‚©.so‚à—‰ð‚µ‚È‚¢‚ÆŽÀŽ¿ƒ_ƒ‚¾‚©‚çŒh‰“‚³‚ê‚éB

551:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/05 19:05:14
Œh‰“‚Æ‚¢‚¤‚©AJNI‚â‚邯‚«‚É‚ÍDLL‚Æ‚©SO’m‚ç‚È‚¢‚Æ‘g‚߂Ȃ¢‚±‚Æ‚ð‚â‚é‚킯‚¾‚©‚çEEE‚Á‚Ä‘‚±‚¤‚ÆŽv‚Á‚½‚¯‚ÇADLLì‚é‚É‚µ‚Ä‚àVB‚Æ‚©‚ÅŽèŒy‚É‘‚¯‚ê‚΂¢‚¢‚ñ‚¾‚æ‚È

552:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/06 08:43:38
mingw‚Ìgcc‚Ådll‚‚­‚Á‚Ä‚éBcl‚Æ‚©‚à‚»‚¤‚¾‚¯‚ÇAƒRƒ“ƒpƒCƒ‰‚ª“f‚­ƒGƒ‰[ƒƒbƒZ[ƒW‚ªˆÓ–¡•s–¾‚Å‹ƒ‚«‚»‚¤‚ɂȂéBjavac‚Ìo—ˆ‚Í—DG‚Á‚Ä‚±‚Æ‚ª—Ç‚­•ª‚©‚éB

553:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/06 08:58:16
c‚ÌƒŠƒ“ƒNŽž‚Éo‚éƒGƒ‰[‚ÅŠÖ”–¢’è‹`‚Æ‚©‚Å
‚Ç‚±‚É‚ ‚é‚©•ª‚©‚ç‚È‚¢ƒP[ƒX‚¾‚Æ‹ƒ‚«‚»‚¤‚ɂȂé‚È

javac‚à“IŠO‚ê‚ȂƂ«‚Í‚ ‚邵
•W€ˆÈŠO‚Ì‹@”\‚ðŽg‚¢Žn‚߂邯
classpath‚ª•ª‚©‚ç‚È‚©‚Á‚½‚è
FX‹ê˜J‚·‚邿

554:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/06 09:49:40
ÌAƒƒ‚ƒŠ“‹Ú‚ª128M’ö“x‚̂Ƃ«‚ÉA1/2‚¾‚Æ64MA1/4‚¾‚Æ32M‚Ȃ킯‚Å
‚È‚ñ‚©g‹ß‚È—e—ʂŎÀŠ´‚ª‚ ‚Á‚½‚¯‚ÇA¡‚̃ƒ‚ƒŠ“‹Ú‚ª4G‚Å‚ ‚Á‚ÄA
1/2‚Å2GA1/4‚Å1G‚ÅAƒƒ‚ƒŠŠm•Û‚Æ‚µ‚Ä‚â‚Á‚Ă邱‚Ƃ͕ςí‚ç‚È‚¢B

2G‚̃ƒ‚ƒŠŠm•Û‚Á‚đ傫‚·‚¬‚é‚Á‚ÄŠ´‚¶‚Í‚·‚邯‚ÇA
“–Žž‚Íbmp,jpeg,mp3’ö“x‚Å10M‚̃tƒ@ƒCƒ‹‚¾‚Á‚½‚ªA
¡‚Å‚ÍAISOƒtƒ@ƒCƒ‹‚Å700MADVD‚Å8G‚Æ‚©‚̃tƒ@ƒCƒ‹“ǂݞ‚݂ɂȂé‚ñ‚¾‚©‚çA
2G,3G’ö“x‚̃ƒ‚ƒŠŠm•Û‚Í•’ʂɂâ‚é‚Å‚µ‚åB

555:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/06 10:46:37
javaƒvƒƒZƒX“à‚Å2GˆÈッ‚ƒŠŠm•Û‚Å‚«‚é‚©‚È[

556:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/06 12:38:19
“–‘RJavaVMŠOB

557:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/06 13:11:13
“¯ˆêƒvƒƒZƒX“à‚¶‚á–³—‚¶‚á‚È‚¢‚©‚È

558:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/08 13:54:06
swig‚щƒbƒp[Ž©“®“I‚É“f‚«o‚µ‚ÄŽÀ‘•‚µ‚悤‚Æ‚µ‚Ä‚é‚ñ‚·‚ªACString‚ÆLPCTSTR‚Æ‚©A
Šeƒ|ƒCƒ“ƒ^‚ªSWIGTYPE_p_***‚ƂȂÁ‚Ä‚µ‚Ü‚Á‚ăLƒƒƒXƒg•û–@‚ª‚í‚©‚ç‚ñ‚̂ł·‚ªA
JAVA‚Åsuperclass‚Æ‚©ˆÓޝ‚µ‚È‚¢‚ŃLƒƒƒXƒg‚·‚é•û–@‚ ‚è‚Ü‚·‚©H

559:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/08/09 13:12:53
‰½‚ð‚µ‚½‚¢‚Ì‚©‚悤•ª‚©‚ç‚ñB

560:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 03:07:02
>>489
‚±‚±‚ÅЉ‚ê‚Ä‚¢‚é‚à‚Ì‚àJNI•À‚̃I[ƒo[ƒwƒbƒh‚ª‚ ‚é‚Ì‚©‚ÈH
‚¾‚ê‚©ƒxƒ“ƒ`‚Æ‚Á‚½l‚¢‚È‚¢‚©‚ÈH
‚½‚Æ‚¦“à•”‚ÅJINŽg‚Á‚Ä‚¢‚邯‚µ‚Ä‚àAJIN‚ƃpƒtƒH[ƒ}ƒ“ƒX“I‚ɑ巂Ȃ¢‚È‚ç
ƒoƒbƒhƒmƒEƒnƒE‚ÈJIN‚ðŽg‚¤‚æ‚肸‚Á‚Ƃ悳‚°‚¾B


561:560
07/11/18 03:08:39
JIN‚Á‚ÄBBB’Ýi‚’‚™

562:560
07/11/18 03:13:34
‚‚¢‚Å‚É
Java‚Á‚ăXƒ^ƒbƒNƒI[ƒo[ƒtƒ[‚Æ‚©ƒAƒEƒgƒIƒuƒƒ‚ƒŠ‚Æ‚©‚Å‚àfinallyƒuƒƒbƒN‚ÌŽÀs•Ûá‚Á‚Ä‚³‚ê‚Ä‚é‚ÌH

563:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 04:13:29
StackOverflowError ‚â OutOfMemoryError ‚ð“Á•ʈµ‚¢‚·‚é‹Lq‚ª
JLS‚ɂ͌©“–‚½‚ç‚È‚¢‚©‚çA‘¼‚Ì—áŠO‚Æ“¯ƒŒƒxƒ‹‚É•ÛØ‚³‚ê‚Ă邯l‚¦‚Ä—Ç‚¢‚ÆŽv‚¤‚¯‚ÇB

‚½‚¾‚Ü‚ŸAfinally߂ŊÔÚ“I‚ɂłàƒCƒ“ƒXƒ^ƒ“ƒX¶¬‚µ‚½ê‡
‘¦ OutOfMemoryError ‚ÅŽ€‚Ê‚Á‚ĉ”\«‚Í‚ ‚éB

564:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 04:27:18
>>563
.NET‚¾‚Æ‚±‚ê‚ç‚Ì”ñ“¯Šú—áŠO‚ɂ‚¢‚ÄfinallyƒuƒƒbƒN‚ÌŽÀs•ÛႪ‚³‚ê‚ĂȂ­‚Á‚Ä
ƒlƒCƒeƒBƒuƒŠƒ\[ƒX‚ðˆµ‚¤ê‡‚ÍSafeHandle“™‚ðŽg‚¤‚킯‚¾‚¯‚Ç‚à
JNI‚Å‚ÍVM‚ª‚æ‚낵‚­‚â‚Á‚Ä‚­‚ê‚¿‚Ⴄ‚Á‚Ä”Fޝ‚Å‚¨‚‹H

565:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 04:36:46
>>564
JNI‚ª‰½‚Åo‚Ä‚­‚é‚Ì‚©”»‚ç‚ñ
>>563‚ÍVM“à‚ł̘b‚Å‚µ‚åH

566:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 04:37:07
SafeHandle‚Ý‚½‚¢‚ÈꇂÍAJNIŽg‚¤‘¤‚łȂñ‚Æ‚©‚µ‚ë‚Á‚ÄŽ–‚É‚È‚é‚ÆŽv‚¤‚¯‚ÇB
‚Á‚‚©AOutOfMemoryError ‚à StackOverflowError ‚àŠÖŒW‚È‚¢‚ËA‚»‚êB

567:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 04:49:44
>>566
JNI‚̌ĂÑo‚µ‚ÅJava‘¤‚ªƒnƒ“ƒhƒ‹‚ðŽó‚¯Žæ‚Á‚Ă܂½JNI‚Å‚»‚̃nƒ“ƒhƒ‹‚ðˆø”‚É‚µ‚ČĂÑo‚µ‚½‚è
‚Á‚Ä‚±‚Ƃ͂Ȃ¢‚ÌH
‚»‚ÌÛAJNI‚©‚çJava‚֎󂯓n‚·‡ŠÔ‚É”ñ“¯Šú—áŠO‚ª”­¶‚µ‚Ä‚àƒnƒ“ƒhƒ‹‚ð‘rޏ‚µ‚È‚¢•ÛႪ‚È‚¢‚Æ‚â‚΂¢‚×

568:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 11:41:44
>>567
ƒƒ\ƒbƒhŒÄ‚Ño‚µ‚ÌۂɃ`ƒFƒbƒN‚³‚ê‚é‚©‚çA
JNIŒÄ‚Ño‚µ‘O‚É”ñ“¯Šú—áŠO‚ª”­¶‚µ‚Ä‚¢‚Ä‚à–â‘è‚È‚¢B

JNIƒƒ\ƒbƒh“à‚Å”ñ“¯Šú—áŠO‚ªo‚éꇂÁ‚Ă̂àA
—Ⴆ‚Î OutOfMemoryError ‚ªo‚é‘O‚ÉA
‚Ü‚¸ NewObject ‚â New<Type>Array ‚Ý‚½‚¢‚ȃƒ\ƒbƒhŒÄ‚Ño‚µŽ©‘Ì‚ªŽ¸”s‚·‚é‚©‚çA
ޏ”s‚µ‚½Žž“_‚ÅJNIƒƒ\ƒbƒh“à‚ÅÓ”C‚ðŽ‚Á‚ănƒ“ƒhƒ‹‚ð‰ð•ú‚µ‚È‚¢‚Æ‚¢‚¯‚È‚¢B
Ž©“®“I‚ɂ͂â‚Á‚Ä‚­‚ê‚È‚¢B

569:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 12:04:19
>>566
‚Á‚‚©ASafeHandle ‚Ý‚½‚¢‚Șb‚È‚çŠÖŒW‚È‚¢‚Ì‚Í finally ‚¾‚í‚ÈB

ƒIƒuƒWƒFƒNƒg‚𶬂µ‚Ä–ß‚è’l‚Ńnƒ“ƒhƒ‹‚ð•Ô‚·‚悤‚ȃƒ\ƒbƒh“à‚Å
ƒIƒuƒWƒFƒNƒg¶¬‚µ‚½‚̂ɔñ“¯Šú—áŠO‚Å’†’fA–ß‚è’l‚¶‚á‚È‚­‚Ä—áŠO”ò‚ñ‚Å‚«‚ÄA
¶¬‚µ‚½ƒIƒuƒWƒFƒNƒg‚̃nƒ“ƒhƒ‹‚ªŽ¸‚í‚ê‚Ă邩‚ç
finallyƒuƒƒbƒN‚ÌŽÀs‚ª•ÛႳ‚ê‚ĂĂàA‰ð•ú‚µ‚½‚è‚̌㈗‚ª‚Å‚«‚Ë[‚Á‚Ă̂ð
–h‚®‚½‚߂̎d‘g‚݂łµ‚åASafeHandle ‚Á‚ÄB

570:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 12:38:31
‚·‚Ü‚ñBJNI‚Á‚Ä‚¢‚¤‚̂ɋ»–¡‚ ‚é‚ñ‚¾‚¯‚ÇAƒsƒAƒ\ƒ“ƒGƒfƒ…ƒP[ƒVƒ‡ƒ“‚Ì–{‚ð
—§‚¿“ǂ݂µ‚Ă݂½‚ñ‚¾‚¯‚ÇA‚¢‚Ü‚¢‚¿‚æ‚­‚í‚©‚ç‚ñ‚Ì‚¾BJNI‚Á‚Ä‚¢‚¤‚Ì‚ª‚Å‚«‚邯
‚½‚Æ‚¦‚΂ǂñ‚ÈŽ–‚ª‚Å‚«‚é‚ñ‚¾‚¢H

571:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 15:19:24
CŒ¾Œê‚Å‘‚©‚ꂽƒ‰ƒCƒuƒ‰ƒŠ‚ȂǂªJava‚©‚çŽg‚¦‚½‚肵‚Ü‚·B

572:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/18 15:27:10
>>568
‚È‚é‚Ù‚ÇB
JNIƒƒ\ƒbƒh“à‚Ńnƒ“ƒhƒ‹Žó‚¯“n‚µ‚ð•ÛႵ‚ÄAfinallyߎÀs‚à•ÛØ‚³‚ê‚Ä‚¢‚é‚È‚ç–â‘è‚È‚³‚°‚¾‚ËB

>>569
SafeHandle‚̓nƒ“ƒhƒ‹Žæ“¾->‘ã“ü‚̃Aƒgƒ~ƒbƒN«‚Æ
SafeHandleŽ©g‚ªƒNƒŠ[ƒ“ƒiƒbƒvƒR[ƒh‚ð‚à‚Á‚Ä‚¢‚Ä‚»‚ÌŽÀs‚ª•ÛႳ‚ê‚éŽd‘g‚Ý
‚¶‚á‚È‚¢‚Á‚¯H‚¾‚©‚çfinally‚ªŽÀs‚³‚ê‚È‚­‚Ä‚àƒŠƒ\[ƒX‚ÌŠJ•ú‚ª•ÛႳ‚ê‚éB
finally߂̎Às•ÛႪ‚È‚¢‚©‚çSafeHandle‚ðŽg‚¤‚Á‚Ä‚±‚ƂŊ֌W‚È‚¢‚Á‚Ä‚±‚Ƃ͂Ȃ­‚ËH

573:570
07/11/18 23:07:02
>>571@ƒTƒ“ƒNƒXB‚È‚çAWindowsƒtƒH[ƒ€‚‚©‚Á‚Ä–³—‚â‚èJNIƒvƒƒOƒ‰ƒ€ì‚Á‚Ä‚Ý‚é‚æB

‚ ‚肪‚Æ‚ËB

574:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/02/29 02:19:26
C -> Java -> C ‚Ý‚½‚¢‚ɕςȊ´‚¶‚ÅJNI‚ðŽg‚¢‚½‚¢‚ñ‚¾‚¯‚ÇA
Java -> C ‚Ì‚½‚ß‚Ì loadLibrary() ‚ÅDLL‚ªŒ©‚‚©‚ç‚È‚¢‚ñ‚¾B

>>462 ‚Ý‚½‚¢‚ȃGƒ‰[‚ª“Š‚°‚ç‚ê‚Ä‚é‚Ý‚½‚¢‚È‚ñ‚¾B
java.library.path ‚ÅŽw’肵‚½êЂɂ ‚éDLL‚Ȃ̂ÉB

‚¿‚Ȃ݂ÉAC -> Java ‚Ì•”•ª‚ð‚È‚µ‚É‚µ‚ÄA’¼Újava‚©‚ç
‹N“®‚·‚邯 loadLibrary() ‚Å‚«‚é‚ñ‚¾B

‚ ‚ÆAsun.boot.library ã‚É’u‚¢‚Ä‚à‚¤‚Ü‚­‚¢‚­‚ñ‚¾B

JDK1.5.0_10 + Windows XP‚È‚ñ‚¾‚¯‚ÇA’N‚©‰½‚©’m‚ç‚È‚¢H

575:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/02/29 22:59:06
>>574
‚»‚ê‰ðŒˆ‚Å‚«‚È‚¢ƒŒƒxƒ‹‚ªG‚ç‚È‚¢•û‚ª‚¢‚¢‚à‚Ì‚¾‚æJNI‚Í

576:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/03/09 01:39:10
JVMTI ‚Ńc[ƒ‹ì‚Á‚Ä‚éB

JNI •”•ª(A){Java •”•ª(B)‚ÆAƒeƒXƒg—p‚Ì Java ƒ^[
ƒQƒbƒgƒvƒƒOƒ‰ƒ€(C)‚ª—pˆÓ‚µ‚Ä‚ ‚éB

‹N“®Žž‚ÉŽw’肳‚ꂽƒNƒ‰ƒXƒƒ\ƒbƒh‚ɑ΂µ‚Ä
RedefineClass() Žg‚Á‚Ä(B)‚̃Nƒ‰ƒX‚̃Xƒ^ƒeƒBƒbƒNƒ
ƒ\ƒbƒh‚ðŒÄ‚Ño‚·ƒoƒCƒgƒR[ƒh‚ð inject ‚µ‚Ä‚éB

‚ÅA(C) ‚̃Nƒ‰ƒX‚ðŽw’è‚·‚邯Šú‘Ғʂ蓮‚­‚ñ‚¾‚¯‚ÇA
java ‚̃‰ƒCƒuƒ‰ƒŠƒNƒ‰ƒX‚ðŽw’è‚·‚邯 (B) ƒNƒ‰ƒX‚Ì
NoClassDefFoundError ‚ɂȂÁ‚Ä‚µ‚Ü‚¤B

ŠÂ‹«‚Í Linux+JDK5 ‚È‚ñ‚¾‚¯‚Ç‚±‚ê‚Á‚Ăǂ¤‚µ‚ÄH‚Ç‚¤
‚µ‚½‚ç‚¢‚¢H

‚¿‚È‚Ý‚É Java —ðˆê”N‚Å‚·B

577:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/03/09 01:56:29
‚Ç‚¤‚µ‚Ä‚à•³‚àNoClassDefFoundError‚¾‚ëB
¡ŽžJNIŽg‚¨‚¤‚Á‚Ä“z‚Í‚±‚ñ‚ȃŒƒxƒ‹‚È‚ñ‚©‚ËEEE

578:576
08/03/09 01:59:56
>>577
ŽÀsŠÂ‹«‚Í‘S‚­ˆêAŽÀs‚·‚éƒvƒƒOƒ‰ƒ€‚àˆø”‚à‘S‚­ˆê‚ÅA
inject ‚µ‚Ä‚éƒoƒCƒgƒR[ƒh‚ªŽQÆ‚µ‚Ä‚éƒNƒ‰ƒX‚àˆêB
ƒ^[ƒQƒbƒgƒvƒƒOƒ‰ƒ€‚̃Nƒ‰ƒX‚©‚ç‚ÍŒ©‚¦‚é‚Ì‚É
ƒ‰ƒCƒuƒ‰ƒNƒ‰ƒX‚©‚猩‚¦‚È‚¢‚̂͂Ȃñ‚Å?

579:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/03/09 02:11:02
ƒNƒ‰ƒXƒ[ƒ_‚ªˆá‚¤‚Æ‚©H

580:576
08/03/09 02:40:45
—¹‰ðB‚¿‚å‚Á‚Æ’²‚ׂĂ݂éB

581:576
08/03/09 03:49:36
‚¤[‚ñA‚¿‚å‚Á‚ÆŽè‚ð“ü‚ê‚Ä‚é‰É‚ª‚È‚¢‚È‚ŸB
“–‰‚Ì–Ú“I‚͉ʂ½‚µ‚½‚µA‚Ƃ肠‚¦‚¸ƒ‰ƒCƒuƒ‰ƒŠ‘¤‚Í
‚Ç‚¤‚µ‚Ä‚à•K—v‚È‚çŒã‚©‚çl‚¦‚éB

> ¡ŽžJNIŽg‚¨‚¤‚Á‚Ä“z‚Í‚±‚ñ‚ȃŒƒxƒ‹‚È‚ñ‚©‚ËEEE

‚¢‚âA‚±‚ê‚Í‚à‚¤–{“–‚É‚»‚Ì’Ê‚èB
JNI ‚È‚ñ‚ÄG‚邿‚è‘O‚É’m‚Á‚Ä‚¨‚­‚ׂ«‚±‚Æ‚¾‚Á‚½B

582:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/07/22 19:57:59
@

583:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/07/22 20:38:03
TextSS


584:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/13 22:30:08
C++‚©‚çJava‚Ìnative‚ȃƒ\ƒbƒh‚É char* ‚ð•Ô‚µ‚½‚¢‚Ì‚¾‚ªA
jbyteArray‚Æ‚©‚É‚µ‚È‚¢‚ÆJava‘¤‚Ŏ󂯎æ‚ê‚È‚¢‚©‚ÈH
char* ‚̂܂܂ŕԂ¹‚È‚¢H

585:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/13 22:53:38
>>584
‚¹‚߂Į”Œ^‚ɃLƒƒƒXƒg‚·‚邯‚©‚µ‚È‚¢‚Æ–³—B

586:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/13 23:32:29
>>584
‚Á‚Ä‚¢‚¤‚© char* ‚ð jbyteArray ‚ɂǂ¤‚â‚Á‚ĕϊ·‚·‚é‚ÌH

587:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/13 23:36:45
NewDirectByteBuffer‚Æ‚¢‚¤Žè‚à

588:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/13 23:58:38
‚»‚ñ‚È‚±‚Ƃł«‚é‚ñ‚¾

589:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/14 00:01:29
>>587
”nŽ­‚È‚¨‚¢‚ç‚É‹ï‘Ì“I‚ȃTƒ“ƒvƒ‹ƒR[ƒh‘‚¢‚Ä‚­‚¾‚³‚¢A•§—lB

590:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/14 01:26:18
‚±‚ñ‚ÈŠ´‚¶H

#include <jni.h>
JNIEXPORT jobject JNICALL Java_Goodbye_getGoodbye(JNIEnv *env, jclass clazz) {
return (*env)->NewDirectByteBuffer(env, "goodbye", 7);
}

import java.nio.*;
public class Goodbye {
public static void main(String[] args) {
System.loadLibrary("goodbye");
ByteBuffer buffer = getGoodbye();
byte[] b = new byte[buffer.remaining()];
buffer.get(b);
System.out.println(new String(b));
}
private static native ByteBuffer getGoodbye();
}

591:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/14 08:30:15
>>590
NewDirectByteBuffer ‚Á‚ēǂݑ‚«—¼—p‚É‚µ‚©‚Å‚«‚È‚¢‚ÆŽv‚Á‚½‚ªA
C/C++ ‚Ì•¶Žš—ñƒŠƒeƒ‰ƒ‹‚Á‚Ä‘‚«ž‚Ý‚µ‚Ä—Ç‚¢‚ñ‚¾‚Á‚¯‚©H

592:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/14 09:27:52
‚¦Aread only‚Ìdirect buffer‚Á‚Äì‚ê‚È‚¢‚Ì

593:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/14 09:46:01
asReadOnlyBuffer() ‚·‚è‚á“ǂݞ‚Ýê—p‚ɂł«‚邯‚ÇA
NewDirectByteBuffer ‚µ‚½’¼Œã‚Í‘‚«ž‚߂邿‚ËB

594:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/14 09:51:42
‚ ‚ŸAasReadOnlyBuffer ‚µ‚Ä‚à“ǂݞ‚Ýê—p‚̃rƒ…[•Ô‚·‚¾‚¯‚Å
NewDirectByteBuffer ‚Å쬂µ‚½ƒoƒbƒtƒ@Ž©‘Ì‚ª“ǂݞ‚Ýê—p‚ɂȂé‚킯‚¶‚á‚È‚¢‚ñ‚ÅB

595:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/14 10:10:12
>>590‚¾‚¯‚È‚çNewString‚Æ‚©NewStringUTF‚µ‚½•û‚ªŠy‚¶‚á‚Ë

NewDirectByteBuffer‚ÉŽ©‘O‚ÅŠm•Û‚µ‚½ƒƒ‚ƒŠ“n‚·Žž‚Á‚Ä
’N‚ª‚ǂ̃^ƒCƒ~ƒ“ƒO‚Ńƒ‚ƒŠ‰ð•ú‚·‚è‚á‚¢‚¢‚ñ‚¾‚©—Ç‚­‚í‚©‚ç‚ñ‚µ
ƒƒ‚ƒŠ‰ð•ú—p‚̃R[ƒ‹ƒoƒbƒNŠÖ”“n‚·‚킯‚Å‚à‚È‚¢‚Ý‚½‚¢‚¾‚µ
NewDirectByteBuffer‚Á‚ăƒ‚ƒŠƒ}ƒbƒvƒhI/O‚Ý‚½‚¢‚È
‰ð•ú‚Ì•K—v‚ª‚È‚¢ƒAƒhƒŒƒX“n‚·‚½‚߂ɂ ‚é‚ñ‚¶‚á

596:590
08/08/14 12:11:38
ƒTƒ“ƒvƒ‹—~‚µ‚¢‚Á‚Ä‚¢‚¤‚©‚ç‘‚¢‚½‚¾‚¯‚È‚ñ‚¾‚©‚ç‚Ë‚Á
Žg‚¢•û‚É–â‘è‚ ‚é‚͕̂S‚à³’m

>>595
ˆê“x•ú‚Á‚½ByteBuffer‚𖳌ø‚Éo—ˆ‚È‚¢‚Á‚Ă̂ªƒlƒbƒN‚È‚ñ‚¾‚æ‚È
ŽQÆ‚ªØ‚ê‚ÄGC‚ɉñŽû‚³‚ê‚é‚Ì‚ðWeakReference‚ő҂Á‚Ä‚©‚ç‰ð•ú‚·‚邵‚©‚È‚¢

597:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/16 21:24:14
–â‘è‚Ì­‚È‚¢Žg‚¢•û‚·‚邽‚߂ɋLq—eˆÕ«‚È‚­‚È‚é‚ñ‚È‚ç
‘f’¼‚É byte[] ‚Æ‚©Žg‚Á‚½•û‚ª‘‚¢‚ñ‚¶‚á‚Ë[‚©‚ÆŽv‚í‚È‚­‚à–³‚¢B

598:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
08/08/17 11:27:03
>>598
URLØÝ¸(imepita.jp)



ÅVƒŒƒX•\ަ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚¨‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ
‰É‚‚Ԃµ2ch

5021“ú‘O‚ÉXV/145 KB
’S“–:undef