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ÀïÃæÀûÓÃWordµÄVBA´úÂë½øÐÐһЩ×ܽᡣ
1¡¢ Éú³ÉVBA´úÂë¡£Word±¾Éí¾ßÓкÜÇ¿µÄ¿ÉÀ©Õ¹ÐÔ£¬ÓÈÆäÊÇÖ§³ÖÓû§×Ô¶¨Ò幦ÄÜ£¬ÆäʵÏÖ
µÄÖ÷Òª·½Ê½¾ÍÊÇͨ¹ýVBA´úÂëÀ´ÊµÏֵġ£ÔÚ“¹¤¾ß->ºê->Visual Basic±à¼Æ÷”ÀïÃæ¾Í¿ÉÒÔ¿´
µ½¾ßÌåµÄºê´úÂ룬¿ÉÒÔÖ±½Ó½øÐб༡£¶øÇÒ»¹¿ÉÒÔʹÓÃÂ¼ÖÆºêµÄ¹¦ÄÜ×Ô¶¯ ......
procedure mc_SplitStr(sourStr:String;splitChar:String;desLst:TStringList);
var
tmpStr:String;
sValue:String;
iStart,iPos:Integer;
begin
try
desLst.Clear; //ºÜÖØÒª£¬·ñÔò£¬»áÒ» ......
這個½çÃæÊÇÓÃPB×öµÄ£¬delphiÈçºÎ設實現ÄØ£¬ÏëÓÃdbControlGrid來實現(ºÃÏñÒ²×ö²»µ½)£¬
問題ÊÇÈçºÎ實現²»Í¬Éú產類別顯ʾ³ö來µÄ·½Ê½²»Ò»樣
......
ÕâÊÇÒ»¸öʵÀý£º
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;
ÉùÃ÷Ò»¸ö¶þάÊý×éµÄ·½·¨ÊÇÓ ......
×î½ü¿ª·¢³ÌÐòÐèҪʹÓÃTList¹¦ÄÜ£¬×ªÔØ´ËÎÄÕ£¬ÒÔ×÷²Î¿¼¡£
¿´ÁËÕâÀï±êÌ⣬´ó¼Ò¿ÉÄÜÒÔΪÎÒ»á̸TListBox¿Ø¼þ£¬ÄǾʹíÁË¡£ÎÒҪ̸µÄÊÇDelphiÌṩ¸øÎÒÃǵľßÓÐÁбíÐÔÖʵÄÀࣺTstringList¡¢TListºÍTObjectList¡£TstringListÓÃÀ´´æ·Å×Ö·û´®£¬TList´æ·ÅÖ¸Õ룬¶øTObjectListÔò´æ·Å¶ÔÏó(Object)¡£
ÔÚÎÒÃÇʹÓÃDelphi µÄ¹ý³ÌÖУ¬Óкܶà ......