Java 通过jacob 调用VB activeX

freeman0526 2011-09-22 06:41:19
function bus(const indata: WideString; var outdata: WideString): Smallint;
这个是VbOCX 函数里面带有一个输出的OutData; 现在调用没有问题,就是调用之后这个outdata的返回无法取到
有高手的来分不多.

Java Test ;
public class TestActive {
public static void main (String args[]){
ActiveXComponent xl = new ActiveXComponent("PB90.bshandle.7.3");
Dispatch disp = xl.getObject();
try{
int i = Dispatch.call(disp, "Init").getShort();
System.out.println("Ocx返回" + i);

String indata = "01|042201265187215183188187180192191265181189183183191211203" +
"1982632913173053363213221082651901961901881922792002652632912"+
"59256258178188261231257212223215658|22957663963766563363063262" +
"7634635639631563556554562577574639500|056231293221243215206216" +
"205288289293285293286284292307304293154" ;
Pointer pErrMsg = null;
pErrMsg = new Pointer(MemoryBlockFactory.createMemoryBlock(1024));
Variant vin = new Variant(indata) ;
Variant vout = new Variant("");
//i =Dispatch.call(disp, "bus",vin ,vout ).getShort();
i= Dispatch.call(disp, "business",vin ,vout).getShort();
System.out.println("business 返回值" + i );
if (vout.equals("")){
System.out.println("AA");
}
if (vout == null){
System.out.println("bb");
}
if (vout.isNull()){
System.out.println("NULL");
}
Object obj = new Object() ;
System.out.println( vout.toObject().toString()) ;
vout.putVariant(obj);
System.out.println("aa + " + obj.toString());
System.out.println("Vout1.toStrig= " +vout.getVariant());
System.out.println("Vout1.toStrig= " +vout.toByte() ) ;
System.out.println("Vout.toStrig= " + vout.toString());
String s = "";
s = pErrMsg.getAsString() ;
System.out.println(s);
vout.putString(s);
System.out.println("ssss" + s);
//System.out.println(vout.getStringRef());
//String s = vout.getString() ;
//System.out.println(s);
} catch (Exception e){
e.printStackTrace();
}finally{
//xl.invoke("Quit", new Variant[] {});
}
}

}
...全文
129 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧