これはITLSSPProc.dllからのネイティブメソッドです
NOMANGLE int CCONV OpenSSPComPort (SSP_COMMAND * cmd);
ここで、SSP_COMMANDは、C++言語のITLSSPProc.dllの構造体です。
struct SSP_COMMAND
{
unsigned long BaudRate;
unsigned char PortNumber;
};
したがって、JNIを使用してJavaでOpenSSPComPort(SSP_COMMAND * cmd)にアクセスする必要があります。これが私が書いたコードです、
public class Main {
public interface ITLSSPProc extends Library {
ITLSSPProc INSTANCE = (ITLSSPProc) Native.loadLibrary(
(Platform.isWindows() ? "ITLSSPProc" : "simpleDLLWindowsPort"), ITLSSPProc.class);
int OpenSSPComPort(Pointer param);
int CloseSSPComPort();
}
public static void main(String[] args)throws IOException {
ITLSSPProc sdll = ITLSSPProc.INSTANCE;
Memory intMem = new Memory(10); // allocating space
intMem.setLong(0,9600);
intMem.setString(1,"com7");
if(sdll.OpenSSPComPort(intMem)==1)
{// calling function with int parameter&result
System.out.println("connected");
}
else
{
System.out.println("failed");
}
}
}
Output : failed
ポート番号は、作業中のCOM7です。したがって、このアプリケーションを実行し、ユーザーマニュアルに記載されているように手動でボーレートを渡すと、ポート番号が正しい場合は、コンソールに「接続済み」と印刷する必要があります。だから、誰もが私がどこで間違っているのか知っています、私は実際の問題がどこにあるのかわかりません。