jnativeµ÷ÓÃdelphiµÄDLLÎļþ
1.ÏÂÔØJNativeµÄ°ü
JNative-1.3.2ÏÂÓÐÈý¸öÎļþ£ºJNativeCpp.dll£¬libJNativeCpp.so£¬JNative.jar¡£
JNativeCpp.dll¿½µ½windows/system32Ŀ¼ÏÂ
libJNativeCpp.soΪLinuxÖÐʹÓõÄÎļþ
JNative.jarÀ©Õ¹°ü¿½µ½%JAVA_HOME%\jre\lib\extÏ»òÕßµ¼Èëµ½¹¤³ÌÖÐ
2.JnativeÖÐʹÓõ½µÄһЩÀàºÍ·½·¨
org
.xvolks
.jnative
.Jnative
: ×°ÔØdllÎļþ£¬¶¨Î»º¯Êý Èç:Jnative native=new Jnative("dllName");
JNative
(),setParameter(),setRetVal(),getRetVal()
etc.
org
.xvolks
.jnative
.pointers
.Pointer: Ìæ´ú±¾µØº¯ÊýÖеĵÄÖ¸Õ룬ÐèÒªÏÈÉêÇëÒ»¿éÄÚ´æ¿Õ¼ä£¬²ÅÄÜ´´½¨,Ò»°ãʹÓÃMemoryBlockFactory
ÀûÓù¤³§Ä£Ê½½øÐд´½¨.
Pointer()£¬dispose()
org
.xvolks
.jnative
.pointers
.memory
.MemoryBlockFactory : ÉêÇëÒ»¿éÄÚ´æ¿Õ¼ä
createMemoryBlock()
org
.xvolks
.jnative
.exceptions.NativeException
: Å׳ö×°ÔØ£¬¶¨Î»µÈ·½ÃæµÄÒì³£
org
.xvolks
.jnative
.Type
: Áоٺ͹ÜÀíJnative
ÐèÒªµÄ²»Í¬µÄÊý¾ÝÀà,Ò»°ãÐèÒª´«ÖµµÄʱºòÖ¸¶¨Ëù´«ÖµµÄÀàÐͺͺ¯ÊýµÄ·µ»ØÖµ
3.ʹÓ÷½·¨
3.1.
¼ÓÔØdllÎļþ
JNative¿ÉʹÓÃÁ½ÖÖ·½Ê½¼ÓÔØdllÎļþ£º
ʹÓÃSystem.loadLibrary
¼ÓÔØ
ʹÓô˷½·¨¿É¼ÓÔØÏµÍ³Ä¿Â¼ÖеÄdllÎļþ¡£¿ÉÒÔÏȰÑdllÎļþ¸´ÖƵ½system32
Ŀ¼Ï£¬Ê¹ÓÃÎļþǰ׺Ãû×÷Ϊ²ÎÊýÀ´¼ÓÔØdllÎļþ¡£
ʹÓÃSystem.load
¼ÓÔØ
´Ë·½·¨²ÎÊýΪdllÎļþȫ·¾¶Ãû¡£
3.2.
µ÷Óú¯Êý
1¡¢Ê×ÏÈ´´½¨JNative¶ÔÏó£º
JNative jnative = new
JNative(dllÎļþÃû, º¯ÊýÃû);
2¡¢ÉèÖ÷µ»ØÖµÀàÐÍ£º
jnative.setRetVal(Type.INT);
3¡¢ÉèÖòÎÊý
jnative.setParameter(0,
Type.STRING, …); //ÉèÖõÚÒ»¸ö²ÎÊýΪ×Ö·û´®
jnative.setParameter(1,
Type.INT, String.valueof(…)); //ÉèÖõڶþ¸ö²ÎÊýΪÕûÊý
4¡¢Ö´ÐÐ
n.invoke();
5¡¢»ñÈ¡·µ»ØÖµ
Integer.parseInt(jnative.getRetVal());
4.Ò»¸ö¼òµ¥µÄÀý×Ó£º
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
public class JNativeTest {
public static final int messageBox(int parentHandle, String
message,
&nb
Ïà¹ØÎĵµ£º
Delphi 7ʼþµÄ¶à´¦Àí»úÖÆ
Allen Tao
2007-08-19
¡¡¡¡Ê×ÏȽâÊÍÒ»ÏÂÕâ¸öÌâÄ¿¡£ÔÚÎÒʹÓÃDelphi 7µÄ¹ý³ÌÖз¢ÏÖ£¬Ò»¸ö¶ÔÏóµÄʼþÖ»Äܱ»Ò»¸ö¹ý³Ì´¦Àí¡£Èç¹û¶à´Î¸øÕâ¸ö¶ÔÏóµÄʼþ¸³¸ø´¦ÀíʼþµÄ¹ý³Ì£¬×îºóÕæÕý´¦ÀíʼþµÄ½«ÊÇ×îºó¸³ÖµµÄÄǸö¹ý³Ì¡£ÀýÈ磬ÓÐÀàTMyClassÖж¨ÒåÁËÒ»¸öʼþOnSomeFired£¬ÔÚÀàTClientClassÖи ......
procedure mc_SplitStr(sourStr:String;splitChar:String;desLst:TStringList);
var
tmpStr:String;
sValue:String;
iStart,iPos:Integer;
begin
try
desLst.Clear; //ºÜÖØÒª£¬·ñÔò£¬»áÒ» ......
ÕâÊÇÒ»¸öʵÀý£º
procedure TMainForm.Button1Click(Sender: TObject);
var
arr:array of array of string;
begin
setlength(arr,2,3);
arr[1,2]:='this is a test';
setlength(arr,0,0);
setlength(arr,4,5);
showmessage(arr[1,2]);
end;
ÉùÃ÷Ò»¸ö¶þάÊý×éµÄ·½·¨ÊÇÓ ......
ÒýÓÃ×Ô£ºhttp://www.delphifans.com/infoview/Article_6445.html
Delphi ¹Ø¼ü×ÖÏê½â
absolute
//ËüʹµÃÄãÄܹ»´´½¨Ò»¸öбäÁ¿, ²¢ÇҸñäÁ¿µÄÆðʼµØÖ·ÓëÁíÒ»¸ö±äÁ¿Ïàͬ.
var
Str: string[32];
StrLen: Byte absolute Str;
//Õâ¸öÉùÃ÷Ö¸¶¨Á˱äÁ¿StrLenÆðʼµØÖ·ÓëStrÏàͬ.
//ÓÉÓÚ×Ö·û´®µÄµÚ0¸öλ ......