簡體   English   中英

如何將String值轉換為Pointer <Byte> (Java,JNAerator)?

[英]How to convert String value to Pointer<Byte> (Java, JNAerator)?

我已使用JNAerator將.dll庫轉換為JAR。 現在我需要調用OpenTCPIPPort_V方法,如下所示: public static short OpenTCPIPPort_V(Pointer<Byte > tcpPort, Pointer<Byte > IPAddr)

如何將兩個字符串值傳遞給此方法?

我找到了解決方案 這是方法Pointer<Byte> org.bridj.Pointer.pointerToCString(String string)

我為TekVisa DLL(用於控制Tektronix的測量儀器的DLL)嘗試了pointerToCString,這對於打開儀器會話不起作用。 這個帖子中的第二個答案更好但是錯過了一個細節:字節數組必須以0終止。我的代碼可以工作。 (儀器變量的類型為String,包含儀器字符串,例如“TCPIP :::: INSTR”。)

有趣的是,pointerToCString在向儀器發送命令時起作用,例如viWrite(“* IDN?”)。

  Pointer<Byte> pViString = Pointer.allocateBytes(instrument.length() + 1);
  byte[] instrumentBytes = instrument.getBytes();
  pViString.setBytes(instrumentBytes);
  pViString.setByteAtIndex(instrument.length(), (byte) 0);

String類中有一個名為getBytes的函數。 這是一個例子:

String example = "example, string";
byte[] bytes = example.getBytes();

你現在需要的是將那些byte []值放入你的指針中。 我想你現在可以辦理了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM