Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

JavaÖе÷ÓÃC/C++Éú³ÉµÄDLL

JavaÖе÷ÓÃC/C++Éú³ÉµÄDLL
Ò»¡¢ Éú³ÉCµÄÍ·Îļþ
¡¡¡¡1. ±à¼­Main.java
¡¡public class Main
¡¡¡¡{
¡¡¡¡public native static int getStrNum(byte str[], int strLen);
¡¡¡¡}
¡¡¡¡2. Éú³ÉÍ·Îļþ
¡¡¡¡°´win + r´ò¿ª“ÔËÐД´°¿Ú£¬ÊäÈë“cmd”£¬´ò¿ªDOS¿ØÖÆ̨´°¿Ú¡£½øÈëÉÏÃæMain.javaËùÔÚµÄĿ¼ÖУ¬ÊäÈ룺
¡¡¡¡javac Main.java
¡¡¡¡javah Main
¡¡¡¡Á½ÌõÃüÁîÍê³Éºó»áÉú³ÉMain.hÎļþ
¡¡¡¡¶þ¡¢ Éú³ÉDLL
¡¡¡¡1. н¨¿Õ¹¤³Ì
¡¡¡¡ÔÚVSÖÐн¨¹¤³Ì£ºWin32 Console Application£¬È¡Ãû“MakeDLL”£¬Ñ¡Ôñ¿Õ¹¤³Ì¡£Ð½¨ºóÐ޸Ť³ÌÊôÐÔ£º
¡¡¡¡(1) GeneralÖУ¬½«“Configuration Type”¸ÄΪ“Dynamic Library (.dll)”£»
¡¡¡¡(2) C/C++µÄGeneralÖУ¬½«“Additional Include Directories”Ìí¼ÓÁ½Ï
¡¡¡¡“C:Program FilesJavajdk1.5.0_06include”
¡¡¡¡“C:Program FilesJavajdk1.5.0_06includewin32”
¡¡¡¡¸ù¾ÝÄã°²×°µÄJAVA·¾¶¶øÉèÖã¬ÕâÊÇÒòΪÔÚC/C++±àÒë¹ý³ÌÖÐҪʹÓÃJAVAµÄjni.hµÈÎļþ
¡¡¡¡2. ½«ÉÏÃæÉú³ÉµÄMain.hÌí¼ÓÈ빤³Ì
¡¡¡¡3. н¨Ò»¸öеÄÎļþmain.cpp£¬´úÂëÈçÏ£º
¡¡#include "Main.h"
¡¡¡¡#include <string.h>
¡¡¡¡JNIEXPORT jint JNICALL Java_Main_getStrNum(JNIEnv *env, jclass cls, jbyteArray str, jint strLen)
¡¡¡¡{
¡¡¡¡jbyte *buffer = (*env).GetByteArrayElements(str, 0);
¡¡¡¡buffer[strLen] = ’’; // ÓÉÓÚJAVA×Ô¶¯·ÖÅä¿Õ¼ä£¬ÐèÒª´«½øÀ´×Ö·û´®³¤¶È²ÎÊý
¡¡¡¡jint len = strlen((char*)buffer);
¡¡¡¡return len;
¡¡¡¡}
¡¡¡¡4. °´F7±àÒëÁ´½Ó£¬Éú³ÉMakeDLL.dllÎļþ
¡¡¡¡Èý¡¢ JAVAµ÷ÓÃDLL
¡¡¡¡ÔÚJAVAÖÐʹÓÃÉÏÃæÉú³ÉµÄDLLÎļþ£º
¡¡¡¡1. ½«MakeDLL.dll¸´ÖƵ½ÓëʹÓÃDLLµÄJAVAÎļþÏàͬµÄĿ¼Ï¡£
¡¡¡¡2. JAVAÎļþµÄÔ´´úÂ룺
public class Main
¡¡¡¡{
¡¡¡¡static
¡¡¡¡{
¡¡¡¡System.loadLibrary(’MakeDLL’);
¡¡¡¡}
¡¡¡¡public native static int getStrNum(byte str[], int strLen);
¡¡¡¡public static void main(String[] args)
¡¡¡¡{
¡¡¡¡


Ïà¹ØÎĵµ£º

java rmi¼òµ¥Àý×Ó

----------½Ó¿Ú------------
import java.rmi.*;
public interface HelloIn extends java.rmi.Remote{
 String sayHello() throws RemoteException;
}
--------ʵÏÖÀà-------------
import java.rmi.*;
import java.net.*;
import java.rmi.registry.*;
import java.rmi.server.*;
public class Hello exten ......

java byteÓëchar»¥×ªÔ­Àí ת

Ò»¡¢×Ö½ÚºÍunicode
JavaÄÚºËÊÇunicodeµÄ£¬¾ÍÁ¬classÎļþÒ²ÊÇ£¬µ«ÊǺܶàýÌ壬°üÀ¨Îļþ/Á÷µÄ±£´æ·½Ê½ÊÇʹÓÃ×Ö½ÚÁ÷µÄ¡£Òò´ËJavaÒª¶ÔÕâЩ×Ö½ÚÁ÷¾­ÐÐת»¯¡£ charÊÇunicodeµÄ£¬¶øbyteÊÇ×Ö½Ú¡£JavaÖÐ byte/char»¥×ªµÄº¯ÊýÔÚsun.ioµÄ°üÖмäÓС£ÆäÖÐByteToCharConverterÀàÊÇÖе÷¶È£¬¿ÉÒÔÓÃÀ´¸æËßÄ㣬ÄãÓÃµÄ convertor¡£ÆäÖÐÁ½¸öºÜ ......

JNBridge¿çÔ½JavaºÍ.Net´úÂë

ƾ½èJNBridge
¼¼Êõ£¬JavaºÍ.NET´úÂëÎÞÐè½»²æ±àÒë
Æ÷¾Í¿ÉÒÔʵÏÖ¶ÔÏó¹²Ïí¡£ËùÓÐJava´úÂëÔËÐÐÔÚJVMÉÏ£¬¶ø.NET´úÂëÔòÔËÐÐÔÚCLRÉÏ¡£Ôڸ÷½°¸Ï£¬JVMºÍCLR¿ÉÒÔÔËÐÐÔÚ²»Í¬µÄ»úÆ÷ÉÏ£¬Ò²¿ÉÒÔÔË
ÐÐÔÚһ̨»úÆ÷µÄ²»Í¬½ø³ÌÉÏ£¬ÉõÖÁ»¹ÄÜÔËÐÐÔÚÏàͬµÄ½ø³ÌÉÏ¡£´Ó¿ª·¢ÕߵĽǶÈÀ´¿´£¬ÔËÐÐÔÚÆäËûÐéÄâ»úÉϵĶÔÏó½ö½öÊÇ´úÀíµÄÔ¶³Ì¶ÔÏó¶øÒÑ¡£JN ......

Java 6 RowSet ʹÓÃÍêÈ«ÆÊÎö

Java 6 RowSet ʹÓÃÍêÈ«ÆÊÎö
C# ÌṩÁË DataSet£¬¿ÉÒÔ½«Êý¾ÝÔ´ÖеÄÊý¾Ý¶ÁÈ¡µ½ÄÚ´æÖУ¬½øÐÐÀëÏß²Ù×÷£¬È»ºóÔÙͬ²½µ½Êý¾ÝÔ´¡£Í¬Ñù£¬ÔÚ Java ÖÐÒ²ÌṩÁËÀàËƵÄʵÏÖ£¬¼´ RowSet¡£javax.sql.rowset °üÏ£¬¶¨ÒåÁËÎå¸ö²»Í¬µÄ RowSet ½Ó¿Ú£¬¹©²»Í¬µÄ³¡ºÏʹÓᣱ¾ÎĽ«·Ö±ð¶ÔÕâÎå¸ö RowSet µÄʹÓó¡ºÏÒÔ¼°Ï꾡Ó÷¨½øÐнéÉÜ£¬²¢ÇÒÃèÊöÊ ......

˳ʱÕë·½·¨ ½â¶Á C ¸´ÔӺ궨Òå

[This was posted to comp.lang.c by its author, David Anderson, on 1994-05-06.]
The ``Clockwise/Spiral Rule''
By David Anderson
There is a technique known as the ``Clockwise/Spiral Rule'' which enables any C programmer to parse in their head any C declaration!
There are three simple steps to fo ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ