š‚¨‘O‚çJava‚ÍJNI‚Å‘ ..
[2ch|¥Menu]
321:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/20 09:42
>>320
ŠÂ‹«‚ª•ª‚©‚ç‚ñBWin32‚©H

322:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/20 16:14
320‚Å‚·B
‚·‚݂܂¹‚ñBwin32‚Å‚·BVC++6‚Ådll‚ð‚‚­‚è‚Ü‚µ‚½B
‚Ç‚¤‚â‚烊ƒ\[ƒXƒGƒfƒBƒ^‚Åì‚Á‚½Aƒƒjƒ…[‚âƒ_ƒCƒAƒƒO‚ª
‚¤‚Ü‚­“ǂݞ‚߂ĂȂ¢‚Ý‚½‚¢‚Å‚·B
‚ǂȂ½‚©ƒAƒhƒoƒCƒX‚¨Šè‚¢‚µ‚Ü‚·B

323:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/20 17:08
>>322
‹ï‘Ì“I‚ÉA‚Ç‚ñ‚ÈŠÖ”‚ð‚ǂ̂悤‚ȇ”ԂŌĂñ‚ÅA‚Ç‚±‚ÅŽ¸”s‚µ‚½‚Ì‚©“Á’肵‚ëB

324:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/20 17:30
320‚Å‚·B
C++‚Å‚Íjava‚©‚çŒÄ‚΂ê‚éŠÖ”A
‚»‚±‚©‚çŒÄ‚΂ê‚éWinMain()‚ɑГ–‚·‚éŠÖ”A
‚»‚ê‚ÆƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ƃ_ƒCƒAƒƒO‚Ì
ƒEƒBƒ“ƒhƒEƒvƒƒV[ƒWƒƒ‚ð—pˆÓ‚µ‚Ü‚µ‚½B

WinMain()‚ɑГ–‚·‚éŠÖ”‚ł̓ƒCƒ“ƒEƒBƒ“ƒhƒE‚Ì“o˜^A
ƒƒbƒZ[ƒWƒ‹[ƒv‚ȂLjê”Ê“I‚ÈWin32SDK‚ÌWinMain()‚Å
‚â‚邿‚¤‚È‚±‚Æ‚ð‚µ‚Ä‚¢‚Ü‚·B
ƒCƒ“ƒXƒ^ƒ“ƒXƒnƒ“ƒhƒ‹‚ÍGetWindowLong()‚ŃfƒXƒNƒgƒbƒv‚Ì
ƒnƒ“ƒhƒ‹‚ðŽæ‚Á‚Ä‚¢‚Ü‚·B
ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚̃EƒBƒ“ƒhƒEƒvƒƒV[ƒWƒƒ‚Å‚ÍAƒ_ƒCƒAƒƒO‚ðŠJ‚­‚½‚ß‚Ì
DialogBox()‚ðŒÄ‚ñ‚Å‚¢‚ÄA‚±‚±‚ÅŽ¸”s‚µ|1‚ª‹A‚Á‚Ä‚«‚Ü‚·B

325:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/20 17:32
‚í‚©‚è‚É‚­‚©‚Á‚½‚ç\‚µ–󂲂´‚¢‚Ü‚¹‚ñ‚ªA‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

320‚Å‚µ‚½B

326:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/20 18:35
>>324
‚»‚ñ‚Èà–¾‚³‚ê‚Ä‚à‚í‚©‚ç‚ñB

ƒIƒ}ƒG‚Ìà–¾‚¶‚áš½–¾‚©‚ñ‚̂Ń\[ƒX‘S•”ŽN‚¹B

327:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/20 21:48
>> ƒCƒ“ƒXƒ^ƒ“ƒXƒnƒ“ƒhƒ‹‚ÍGetWindowLong()‚ŃfƒXƒNƒgƒbƒv‚Ì
>> ƒnƒ“ƒhƒ‹‚ðŽæ‚Á‚Ä‚¢‚Ü‚·B
–¾‚ç‚©‚É‚±‚±‚¾‚ëA–â‘è‚ÍBDllMain‚ÌHANDLE‚ðŽg‚¦‚΂¢‚¢‚̂łÍH


328:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
03/12/21 04:32
320‚Å‚·B
‚Å‚«‚Ü‚µ‚½I–{“–‚É‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B327‚³‚ñ‚Ì‚¨‚Á‚µ‚á‚é’Ê‚è‚Å‚µ‚½B
ŠF—l‰½“x‚àƒŒƒX’¸‚¢‚Ä–{“–‚É‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B

329:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/01/23 01:14
CƒR[ƒh‚Á‚ăfƒoƒbƒO‚Å‚«‚Ü‚·‚©H
jdb‚ŃuƒŒƒCƒNƒ|ƒCƒ“ƒgݒ肵‚Ä‚àŽ~‚Ü‚Á‚Ä‚­‚ê‚È‚¢‚Å‚·B


330:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/01/23 09:15
>>329
VC++‚Å‚µ‚©JNIì‚Á‚½‚±‚ƂȂ¢‚¯‚ÇA’âŽ~‚Å‚«‚邿B
‚¿‚á‚ñ‚ÆŽÀs‚·‚éƒvƒƒZƒX‚Éjava.exe(‚ɑГ–‚·‚é‚à‚Ì)‚ðŽw’肵‚Ä‚é?

331:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 00:49
‚ ‚ñ‚Ü‚èl‚¢‚È‚¢‚ËEEE‚Ȃ̂ł ‚¦‚ÄageB

ŋ߂t‚r‚aƒfƒoƒCƒX‚Æ’ÊM‚·‚é•K—v‚ª‚ ‚Á‚½‚̂łi‚m‚h‚ðŽŽ‚µ‚½B
‚ÅA‰º‚̂悤‚ɃGƒ‰[‚ð’Ê’m‚µ‚悤‚Æ‚µ‚½‚çA“ú–{Œê•¶Žš—ñ‚ª‰»‚¯‚Ü‚·‚½B

jclass jc = env->FindClass( "java/io/IOException" );
env->ThrowNew( jc, "“ú–{Œê•¶Žš—ñ" );

‰º‚̃TƒCƒg‚ðŽQl‚ÉUnicode‚ɕϊ·‚µ‚Ä‚à‘Ê–ÚB
URLØÝ¸(www.ki.rim.or.jp)

Žd•û‚È‚¢‚Ì‚ÅException‚̃TƒuƒNƒ‰ƒX‚ðì‚Á‚ăGƒ‰[ƒƒbƒZ[ƒW‚ðŒÅ’肵‚½B
“–‰‚Ì–Ú“I‚͉ʂ½‚¹‚ñ‚¾‚¯‚ÇA‚·‚Á‚«‚肵‚È‚¢B’N‚©‰ðŒˆ–@’m‚ç‚È‚¢H

332:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 01:01
“ú–{Œê‚Å¢‚Á‚½‚±‚Ƃ͂Ȃ¢‚ÈB
‚¨‘O‚̃R[ƒh‚ª•…‚Á‚Ä‚é‚ñ‚¾‚낤‚æB‚³‚炵‚Ä‚ÝB

333:331
04/03/14 01:11
ã‚̃TƒCƒg‚̈ê”Ô‰º‚ÌDLL‘¤ƒR[ƒh‚Ì
char* src = "‚±‚ñ‚΂ñ‚í";
‚æ‚艺‚̃\[ƒX‚ðreturn result; ¨ env->ThrowNew( jc, result);‚É
•ÏX‚µ‚½‚¾‚¯‚È‚ñ‚¾‚¯‚ÇEEE

334:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 01:20
‚»‚̃TƒCƒg‚̃R[ƒh‚»‚̂܂܂¾‚Æ“ú–{Œê‚Í‚¿‚á‚ñ‚Ƃłé‚ÌH

335:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 01:52
>> env->ThrowNew( jc, result);‚É
2”Ô–ÚAjstring‚¶‚Ⴞ‚߂łµ‚åB
szWide‚Å‚¢‚¯‚È‚¢H


336:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 03:25
C‚̃vƒƒOƒ‰ƒ€‚©‚çHORBi‚‚܂èJAVA‚ð‚‚©‚Á‚½ŠÖ”)‚ð‚‚©‚Á‚Ä—£‚ꂽ’[––‚ÌŠÖ”‚ð‚½‚½‚­‚Á‚Ä‚±‚Ƃ͂ł«‚Ü‚·‚©H

337:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 03:31
>>336
‚Å‚«‚邿B

HORBŽg‚¤‚ÆŒˆ‚Ü‚Á‚Ä‚¢‚é‚̂ȂçAC‚̃vƒƒZƒX‚ÆJava‚̃vƒƒZƒX‚𗼕û‚½‚Ä‚ÄA
socket‚È‚ñ‚©‚ŃvƒƒZƒXŠÔ’ÊM‚µ‚½‚Ù‚¤‚ªŠy‚¾‚ÆŽv‚¤B

338:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 04:09
>>337
î•ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B

‚»‚ê‚È‚ç‚ÎAC‚̃vƒƒZƒX‚Æ—£‚ꂽ’[––‚ÌC‚̃vƒƒZƒX‚Ń\ƒPƒbƒg’ÊM‚µ‚½•û‚ª‚¢‚¢‚Å‚·‚ËB
HORB‚ÍA”ñí‚ÉŠÈ’P‚É—£‚ꂽ’[––‚ÌŠÖ”‚ð‚½‚½‚¯‚é‚̂͒m‚Á‚Ä‚¢‚Ü‚·B
C<->JAVAŠÔ‚̃Cƒ“ƒ^ƒtƒF[ƒXÝŒv‚ªA•’ʂɊ֔‚ð‚½‚½‚­‚悤‚ÉÝŒv‚Å‚«A‚©‚ŠȒP‚È‚ç‚΃`ƒƒƒŒƒ“ƒW‚µ‚悤‚©‚ȂƎv‚Á‚½‚µ‚¾‚¢‚Å‚·B

339:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/14 14:56
‚È‚º‚É‚¢‚Ü‚³‚çHORB?
RMI-IIOP‚·‚é‚Ù‚¤‚ªŒ»ŽÀ“I‚©‚ÆB


340:331
04/03/15 23:35
ŽŽ‚µ‚½Œ‹‰ÊA>331‚Å‚ ‚°‚½ƒTƒCƒg‚̂܂܂¾‚Æ–³—‚¾‚Á‚½B
nWideLengthˆÈ‰º‚ð‰º‚Ì‚æ‚¤‚É•ÏX‚·‚邯“ú–{Œê‚𳂵‚­•\ަ‚Å‚«‚½B

int nWideLength = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,src, strlen(src),0,0);
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,src, strlen(src),szWide,nWideLength);
jstring result = env->NewString(szWide, nWideLength);
return result;

‚ÅA‚»‚̂܂Üreturn result; ‚¾‚¯‚ðenv->ThrowNew(jc,result);‚àenv->ThrowNew(jc,szWide);
‚É‚µ‚Ä‚à“ú–{Œê‚Í•¶Žš‰»‚¯‚µ‚½‚܂܂¾B‚à‚¤‚¾‚ß‚ÛB


341:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/16 01:10
‚ñ[A‚»‚±‚܂ł͂ł«‚Ä‚é‚È‚ç
ThrowNew‚Í‚ ‚«‚ç‚ß‚ÄThrow‚ðŽg‚¤‚Æ‚©B
Exception‚̃Cƒ“ƒXƒ^ƒ“ƒX‚Íjstringˆø”‚É‚µ‚ͬ‚·‚éB


342:341
04/03/16 01:35
‚ [A‚í‚©‚Á‚½B‚»‚±‚łł«‚Ä‚éWCHAR‚ð
WideCharToMultiByte‚ÅCP_UTF8‚Ìchar‚É‚µ‚Ä“n‚¹‚΂¢‚¢‚ñ‚¾B

343:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/03/16 22:57
ThrowNew‚Ìchar*‚ªH‚¦‚é‚Ì‚ÍA‚Ȃ邽‚¯ƒƒ‚ƒŠ‚ðŠm•Û‚¹‚¸‚Éthrow‚·‚邽‚ß‚Ì
‹Ù‹}‰ñ”ð‚È‚ñ‚¶‚á‚Ë‚¦‚©‚È‚ B

344:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 10:37
Java‘¤@¨@Win32dll‚ÍAJNI‚ɂĎÀŒ»‚Å‚«‚é’ÊM‚Å‚·‚ªA
Win32exeiƒvƒƒZƒXj ¨@Java‘¤‚ðŽÀŒ»‚·‚é‚É‚ÍA‚ǂ̂悤‚ÈŽè’i‚ªˆê”Ô‚¢‚¢‚Å‚·‚©‚ËH

ƒAƒvƒŠƒP[ƒVƒ‡ƒ“ŠÔ’ÊM‚¾‚¯‚Å‚«‚ê‚΂¢‚¢‚Ì‚ÅA‚Å‚«‚ê‚΂ ‚Ü‚è‘å‚°‚³‚ɂ͂µ‚½‚­‚È‚¢‚Å‚·B
Win32ŠÔ‚łȂ¢‚©‚çƒpƒCƒv‚Í–³—‚¾‚µAˆê‚‚ÌOSã‚ł̒ÊM‚Ȃ̂Ń\ƒPƒbƒg’ÊM‚Í­X‘å‚°‚³‚©‚È‚ÆB

345:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 10:38
>>344
>Win32ŠÔ‚łȂ¢‚©‚çƒpƒCƒv‚Í–³—
‰R‚¾‚ëH

346:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 11:06
>>345
Java‚ŃpƒCƒvŽg‚¦‚é‚©H

347:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 11:12
Win32API’†‚̃pƒCƒvŠÖ˜A‚ÌAPI‚ð‘S‚ÄJNI‚щƒbƒv‚µ‚½‚ç
Žg‚¦‚é‚ñ‚łȂ¢‚ÌH

348:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 14:32
>>345 Java‚ŃpƒCƒv‚ÍŽg‚¦‚邿B

349:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 15:03
>>348
‚»‚ê‚Á‚ÄAJava‚̃XƒŒƒbƒhŠÔ’ÊM‚Ì‚½‚߂̃pƒCƒv‚Å‚ ‚Á‚ÄAWin32-JavaŠÔ‚̃pƒCƒv‚ł͂Ȃ¢‚ñ‚łȂ¢‚ÌH

350:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 15:20
>>348
‚»‚ê‚Á‚Ä NIO ‚Ì Pipe ‚ÌŽ–‚¢‚Á‚Ä‚ñ‚ÌH

ŒÂl“I‚É‚Í >>347 ‚Å NIO ‚Ì Pipe ŽÀ‘•‚·‚é‚Ì‚ª—Ç‚¢‚©‚ÆB

351:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 16:16
>>349 ƒpƒCƒv‚Á‚Ä•W€“üo—݂͂½‚¢‚É‚n‚r‚ª’ñ‹Ÿ‚·‚é“üo—Í‚¾‚ëB–¼‘O•t‚«‚Å‚àA–¼‘O–³‚µ‚Å‚àB

352:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 16:27
>>351
‚n‚r‚ª’ñ‹Ÿ‚·‚é“üo—Í‚ðAJava‚ÍŠÔÚ“I‚É‚µ‚©—˜—p‚Å‚«‚È‚¢‚©‚çA
‚»‚ê‚ðŽg‚Á‚ÄWin32‚Ƃ͑Θb‚Å‚«‚È‚¢‚̂łÍB

353:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 23:02
win32‚Ì’†‚ÅJVM‚𶬂·‚éA‚Á‚Ă̂̓_ƒ‚È‚Ì?

354:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/04/07 23:52
> ˆê‚‚ÌOSã‚ł̒ÊM‚Ȃ̂Ń\ƒPƒbƒg’ÊM‚Í­X‘å‚°‚³‚©‚È‚ÆB

‚±‚ꂪˆê”Ô‚â‚è‚â‚·‚¢‚ÆŽv‚¤B

355:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/06/04 21:22
SWIG‚Ì“ú–{Œêƒy[ƒW‚Á‚Ăǂ¤‚È‚Á‚½‚©’N‚©’m‚è‚Ü‚¹‚ñ‚©H
URLØÝ¸(swig-jp.dyndns.org)

‚¿‚Ȃ݂ɖ{‰ÆURLØÝ¸(www.swig.org)

356:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/06/06 00:04
‚¨‚Ü‚¦‚çASolaris‚ÆLinuxƒvƒ‰ƒbƒgƒtƒH[ƒ€ˆÈŠO‚̊‹«‚ÅA
native“à‚ŃVƒOƒiƒ‹ƒnƒ“ƒhƒ‰Žg‚¤‚ñ‚¶‚á‚Ë[‚¼B

357:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/06/06 00:40
native“à‚ÅC++—áŠOŽg‚¤‚Æcatch‚µ‚Ä‚¢‚é‚É‚à‚©‚©‚í‚炸—Ž‚¿‚éƒoƒO‚Í
’¼‚Á‚½‚ñ‚Å‚·‚©‚ËH(linux)

358:@
04/06/30 11:18
ƒpƒbƒP[ƒW‚ðŽg‚Á‚½JNI‚ÅŽ¿–â‚Å‚·B

C:\home\java‚Éhoge.java‚ð’u‚¢‚ăRƒ“ƒpƒCƒ‹
hoge.java‚̓pƒbƒP[ƒWfoo‚É’u‚­‚±‚Ƃɂ·‚é
‚±‚±‚܂łŠhoge.java ->C:\home\java
hoge.class->C:\home\java\foo

javah -jni foo.hoge‚Ńwƒbƒ_ƒtƒ@ƒCƒ‹ì¬B
foo_hoge.h‚ðŒ³‚É‚µ‚Äfoo_hoge.cpp‚ðì¬B
ƒŠƒ“ƒN‚µ‚Ähoge.DLL‚ðì¬
‚±‚±‚܂łŠfoo_hoge.h, foo_hoge.cpp -> C:\home\java
hoge.dll -> C:\home\java\foo

‚±‚ÌŒãAC:\home\java‚©‚çjava foo.hoge‚ðŽÀs‚·‚邯
UnsatisfiedLinkError—áŠO‚ª”­¶‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·B
hoge.java“à‚ÌSystem.loadLibrary("hoge")‚Å
ƒGƒ‰[‚ª”­¶‚µ‚Ä‚¢‚邯ƒRƒ“ƒpƒCƒ‰‚Í“{‚Á‚Ă܂·‚ªŒ´ˆö‚ª‚í‚©‚è‚Ü‚¹‚ñ

ޝŽÒ‚Ì•ûXAƒAƒhƒoƒCƒX‚¨Šè‚¢‚µ‚Ü‚·B


359:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/06/30 11:29
>>358
dll ‚Ì’u‚«êŠ‚ªˆ«‚¢B

360:358
04/06/30 11:41
dllƒtƒ@ƒCƒ‹‚ð*.javaƒtƒ@ƒCƒ‹‚Æ“¯‚¶êЂɒu‚¢‚½‚çãŽè‚­“®ì‚µ‚Ü‚µ‚½B
‚Ä‚Á‚«‚è*.classƒtƒ@ƒCƒ‹‚Æ“¯‚¶êЂɒu‚­‚à‚̂Ɗ¨ˆá‚¢‚µ‚Ă܂µ‚½B
>>359—lA‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B

361:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/08/12 01:04
u-> ‚© ->* ‚̶‚É‚Í\‘¢‘̂̃|ƒCƒ“ƒ^‚ª•K—vv

native‚̃\[ƒXi‚bŒ¾Œêj‚ðƒRƒ“ƒpƒCƒ‹‚·‚邯ã‚̂悤‚ȃGƒ‰[‚ªo‚é‚̂ł·‚ª‚È‚º‚Å‚·‚©H
ƒGƒ‰[‚ªo‚Ä‚¢‚é‰ÓŠ‚ÍˆÈ‰º‚Ì•¶‚Å‚·B

return env->NewStringUTF("Hello World");

ƒCƒ“ƒNƒ‹[ƒhƒpƒX‚Í‚«‚¿‚ñ‚ƒljÁ‚µ‚Ä‚¢‚Ü‚·B
javah‚Å쬂µ‚½ƒwƒbƒ_‚àƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚¢‚Ü‚·B

362:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/08/12 07:05
JNI‚Ì‚±‚Æ’m‚ç‚ñ‚ªA‚±‚¤‚µ‚Ă݂½‚çH
return NewStringUTF(env, "Hello Wrold");


363:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/08/12 07:19
C ‚Æ C++ ‚¶‚á JNI ‚̌ĂÑo‚µ•û‚ªˆá‚¤BC ‚¾‚Æ
return (*env)->NewStringUTF(env, "Hello World");
‚Æ‚µ‚È‚¯‚ê‚΂¢‚¯‚È‚¢‚Í‚¸B

364:361
04/08/13 01:14
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B‰ðŒˆ‚µ‚Ü‚µ‚½B
‚à‚¤ˆê‚ÂŽ¿–₪‚ ‚é‚̂ł·‚ªAjava‘¤‚Å—pˆÓ‚µ‚½intŒ^‚Ì“ñŽŸŒ³”z—ñ‚Énative‘¤‚©‚ç’l‚ð“ü‚ê‚é•û–@‚ª‚í‚©‚è‚Ü‚¹‚ñB
FX‚Æ‚â‚Á‚Ă݂½‚ñ‚Å‚·‚ªAŽÀsŽž‚ɃGƒ‰[‚ªo‚Ä‚µ‚Ü‚¢‚Ü‚·B

365:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/08/13 01:20
ƒGƒ‰[H

366:361
04/08/13 04:58
/*JAVA‘¤‚̃\[ƒX*/
public class HelloJNI{

public static native void JNITest(int intAry[][]);

static{System.loadLibrary("HelloJNI");}

public static void main(String args[]){
int intAry[][] = new int[64][64];
for(int i=0; i<12;i++){
for(int j=0; j<16;j++){
intAry[i][j] = 0;
}
}
JNITest(intAry);
for(int i=0;i<12;i++){
for(int j=0;j<16;j++){
System.out.print(intAry[i][j]+" ");
}
}
System.out.println("--------------------------");
}
}


367:361
04/08/13 04:59
/*native‘¤‚̃\[ƒX*/

#include <stdio.h>
#include "HelloJNI.h"

JNIEXPORT void JNICALL Java_HelloJNI_JNITest
(JNIEnv *env, jclass clazz, jobjectArray jobjArray){
int i, j;
int c=0;

jobject **array = (*env)->GetObjectArrayElement(env, jobjArray, NULL);


for(i = 0; i<12;i++){
for(j=0;j<16;j++){
array[i][j] = c;
c++;
}
}
(*env)->ReleaseIntArrayElements(env, jobjArray, array,0);
}


368:361
04/08/13 05:03
intAry‚É0,1,2,3,4,c
‚Æ‚¢‚¤‚Ó‚¤‚É’l‚ð“ü‚ꂽ‚¢‚̂ł·‚ªA‚Ç‚¤‚·‚ê‚΂¢‚¢‚Å‚·‚©H

369:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/08/13 10:19
>>367
ŽŽ‚µ‚ĂȂ¢‚̂ŊԈá‚Á‚Ă邩‚à‚µ‚ê‚ñ‚ª ‚±‚ñ‚ÈŠ´‚¶‚É‚µ‚È‚¢‚ƃ_ƒ‚¶‚á‚È‚¢‚©H

for(i = 0; i < (*env)->GetArrayLength(env, jobjArray); i++){
@jintArray jintarray = (jintArray)(*env)->GetObjectArrayElement(env, jobjArray);
@jint *jint = (*env)->GetIntArrayElements(env, jintarray, NULL);
@for(j = 0 ; j < (*env)->GetArrayLength(env, jintarray); j++){
@@jint[j] = c++;
@}
@(*env)->ReleaseIntArrayElements(env, jintarray, 0);
}


370:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/08/13 21:53
#ifdef __cplusplus
#define ENV (*env)
#else
#define ENV env
#endif


ENV->GetArrayLength(env, array);

371:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/08/17 14:31
>>370
‚»‚êC++‚¶‚áƒRƒ“ƒpƒCƒ‹’Ê‚ç‚ñ‚¾‚ëB

372:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/10/14 01:11:03
>>370
‹t‚¶‚á‚È‚¢‚ÌH

373:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/10/14 02:56:47
‹t‚ł͂ ‚邪A‚»‚ê‚𳂵‚½‚Æ‚±‚ë‚ÅC++‚¶‚Ⴞ‚ß‚¾‚µB

374:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/09 00:41:58
JNI‚ÅdefineClassƒƒ\ƒbƒh‚ðŽg‚Á‚Äbyte”z—ñ‚©‚çŽæ“¾‚µ‚½ƒNƒ‰ƒXî•ñ‚ðŒ³‚ÉAƒCƒ“ƒXƒ^ƒ“ƒX‚Á‚ͬ‚Å‚«‚Ü‚·‚©H
‚»‚ê‚É‚µ‚Ä‚àAJNI‚ÌDefineClass‚Á‚Ăǂ¤‚â‚Á‚ÄŽg‚¤‚ñ‚¾‚낤EEB

375:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/09 00:48:26
DefineClass‚Á‚ÄJNI‚¶‚á‚È‚¢‚¾‚ë


376:374
04/12/09 00:55:46
>>375
ƒNƒ‰ƒX‘€ì DefineClass
jclass DefineClass(JNIEnv *env, jobject loader, const jbyte *buf, jsize bufLen);
raw ƒNƒ‰ƒXƒf[ƒ^‚̃oƒbƒtƒ@‚©‚çƒNƒ‰ƒX‚ðƒ[ƒh‚µ‚Ü‚·B
ƒpƒ‰ƒ[ƒ^:
env: JNI ƒCƒ“ƒ^ƒtƒF[ƒXƒ|ƒCƒ“ƒ^
loader: ’è‹`‚³‚ꂽƒNƒ‰ƒX‚ÉŠ„‚è“–‚Ä‚ç‚ê‚éƒNƒ‰ƒXƒ[ƒ_
buf: .classƒtƒ@ƒCƒ‹ƒf[ƒ^‚ðŠÜ‚Þƒoƒbƒtƒ@
bufLen: ƒoƒbƒtƒ@’·
–ß‚è’l: ƒNƒ‰ƒXƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·BƒGƒ‰[‚ª”­¶‚µ‚½ê‡‚Í null ‚ð•Ô‚µ‚Ü‚·B

URLØÝ¸(java.sun.com)


377:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/09 01:17:16
‚¢‚âA‚»‚ê‚â‚肽‚¢‚̂ȂçJNI•K—v‚È‚¢‚¾‚낤‚Æ‚¢‚¤ˆÓ–¡‚¾
ƒRƒAAPI‚łł«‚é‚ñ‚¾‚©‚ç


378:374
04/12/09 07:48:29
>>377
‚»‚ê‚ðƒlƒCƒeƒBƒuƒR[ƒh‚Å‚©‚¯‚é‚©‚Æ‚¢‚¤Ž¿–â‚È‚ñ‚Å‚·B

379:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/09 08:06:41
>>378
‘‚¯‚邾‚ëB
JNI‚¶‚á‚È‚­‚ÄJava‚̃Nƒ‰ƒXƒtƒ@ƒCƒ‹‚ÉŠÖ‚·‚é’mޝ‚ª•K—v‚ɂȂ邾‚¯‚ÅB

380:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/09 13:37:48
>>374‚ª‚Ç‚¤‚¢‚Á‚½ê–ʂł±‚ê‚ðŽg‚¨‚¤‚Æ‚µ‚Ä‚¢‚é‚Ì‚©‚í‚©‚ç‚È‚¢EEE

381:374
04/12/09 21:56:27
>>379
JavaƒIƒ“ƒŠ[‚ł͎À‘•‚µ‚½‚±‚Æ‚ ‚é‚̂ł·‚ªA
JNI‚ɈÚA‚µ‚½‚Æ‚½‚ñƒZƒLƒ…ƒŠƒeƒBƒGƒ‰[‚ɂȂè‚Ü‚¹‚ñ‚©H

382:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/09 22:58:25
‚ ‚Ó‚§‚£‚ÈŽ¿–â‚·‚邯‚Ç‚æ

‚i‚m‚h‚Á‚ĉ½‚ēǂނÌHH

ƒWƒjHH
ƒWƒFƒCƒGƒkƒAƒC


“ǂ߂Ȃ­‚Ä"Java Native Interface "‚Á‚ēǂñ‚ł܂ÂBB

383:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/09 22:59:57
IT—pŒêŽ«“T e-Words F JNI‚Æ‚Í yJava Native Interfacez@„Ÿ@ˆÓ–¡E‰ðà
URLØÝ¸(e-words.jp)

384:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/11 12:30:12
>>379
‘‚¢‚Ă݂ÄB

385:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/11 12:32:09
‘‚¢‚Ă݂½B

386:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/11 12:52:25
>>385
‚ñH‚Ç‚±‚ÉH

387:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/13 13:46:25
.net‚ÌC#‚Åì‚Á‚½.dllƒtƒ@ƒCƒ‹‚ÅJNI‚Á‚Ăł«‚Ü‚¹‚ñ‚©?


388:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/13 18:49:12
>>387
‚»‚ê‚ðŒ¾‚¤‚È‚ç
#NI(ƒVƒƒ[ƒvƒj[)‚¾‚ëH
ƒO‚®‚ê

389:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/14 03:15:20
>>387
.net‚ÌC#‚Åì‚Á‚½.dllƒtƒ@ƒCƒ‹‚̃ƒ\ƒbƒh‚ðŒÄ‚Ôdll‚ðì‚ê‚΂¢‚¢

390:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/18 21:10:34
>>376
JNIƒCƒ“ƒ^ƒtƒF[ƒX‚ÌDefineClass‚Á‚ÄA
ƒo[ƒWƒ‡ƒ“–ˆ‚ɃVƒOƒlƒ`ƒƒ‚ªˆÙ‚È‚é‚Ì‚©H
‚»‚ê‚Æ‚àƒwƒ‹ƒv‚ªŠÔˆá‚Á‚Ă邾‚¯‚Ȃ̂©H

‚ ‚ÆŽg‚¢•û’N‚©‹³‚¦‚Ä‚­‚êB
‰½“x‚â‚Á‚Ä‚àƒlƒCƒeƒBƒuƒR[ƒhã‚Å‚¤‚Ü‚­ƒCƒ“ƒXƒ^ƒ“ƒX‚ðŽæ“¾‚Å‚«‚È‚¢B

391:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/18 21:48:44
URLØÝ¸(www.atmarkit.co.jp)

392:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/18 22:24:33
>>391
ccãŽè‚­‚¢‚©‚È‚¢——R‚ª‚í‚©‚Á‚½‚悤‚È‹C‚ª‚·‚éB

393:390
04/12/18 23:04:05
>>392
‹³‚¦‚Ä‚­‚êI
‰½‚ªŒ´ˆö‚È‚ñ‚¾B
‚Â[‚©AŽd—lã–³—‚Ȃ̂©H

394:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/18 23:08:43
‚Â[‚©AƒoƒCƒgƒR[ƒh‚ðˆÃ†‰»‚µ‚Ä‚àA‚·‚®‚É‚â‚Ô‚ç‚ê‚é‚Á‚ÄB

395:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/18 23:10:13
>>394
>>390 ‚ª‚â‚Á‚Ä‚àA‚Á‚Ä‚ñ‚Ȃ瓯ˆÓB

396:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/19 13:04:15
‚Ç‚¤‚¹VM‚ªŽÀs‚·‚邯‚«‚ɃfƒR[ƒh‚µ‚Ä‚é‚ñ‚¾‚©‚ç‚¢‚݂Ȃ¢‚È

397:390
04/12/19 13:40:24
>>394
>>395
>>396
‚»‚±‚©‚çƒNƒ‰ƒXƒtƒ@ƒCƒ‹‚𶬂µAƒ\[ƒX“üŽè‰Â‚ÆŒ¾‚Á‚Ä‚¢‚éH

398:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/19 15:41:10
> ‚»‚±‚©‚çƒNƒ‰ƒXƒtƒ@ƒCƒ‹‚𶬂µAƒ\[ƒX“üŽè‰Â‚ÆŒ¾‚Á‚Ä‚¢‚éH
‰Â”\B

‚¹‚¢‚º‚¢>390‚ª‚¢‚­‚çŠæ’£‚Á‚Ä‚àAJadŽg‚Á‚Ä‚¨ŽèŒyˆê”­•ÏŠ·A‚Á‚Ă̂ð–h‚®’ö“x‚Ì
‚±‚Æ‚µ‚©‚Å‚«‚ñ‚¾‚낤B

399:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
04/12/19 16:02:26
‚»‚¤‚¢‚¤‚±‚Æ

‹ê˜J‚µ‚ÄJNI‚ŃNƒ‰ƒXƒ[ƒ_ì‚Á‚½‚Æ‚±‚ë‚Å‚¢‚­‚ç‚Å‚à‚¢‚¶‚ç‚ê‚é‚ñ‚¾‚µ
JNI‚̃R[ƒh‚¾‚Á‚ăXƒ^ƒbƒNƒTƒCƒY‚̧ŒÀ‚Æ‚©‚ő傫‚¢‚Ìì‚ê‚È‚¢‚ñ‚¾‚©‚ç
—]—T‚ʼnðÍ‚³‚ê‚邾‚낤‚È

‚»‚ê‚­‚ç‚¢‚È‚ç‘Ñˆæ‚Æ‚©‚ ‚邾‚낤‚ªURLƒNƒ‰ƒXƒ[ƒ_‚ðŒp³‚µ‚Ä’ÊM‚ðˆÃ†‰»A
–ˆ‰ñƒ[ƒh‚·‚é‚Ù‚¤‚ª‚Ü‚¾Œ»ŽÀ“I

ƒlƒgƒQ‚Æ‚©‚Å‚¢‚­‚çƒlƒCƒeƒBƒuƒR[ƒh‚Å‚àbot‚Æ‚©ƒc[ƒ‹‚Æ‚©‚È‚­‚¹‚È‚¢‚킯‚¾‚µ‚Ë
ˆÀ‘S«‚Ì‚½‚ß‚ÉJNI‚Á‚Ă͈̂Ӗ¡‚È‚¢

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


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

5395“ú‘O‚ÉXV/168 KB
’S“–:undef