首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java在Kernel32中找不到名称管道函数

Java在Kernel32中找不到名称管道函数
EN

Stack Overflow用户
提问于 2016-06-14 13:08:54
回答 1查看 359关注 0票数 1

因此,这个"Beep“函数可以工作,但是当我尝试任何named管道函数时,它会返回:

线程"main“java.lang.UnsatisfiedLinkError中的异常:查找函数‘WaitNamed管道’时出错:找不到指定的过程。

代码语言:javascript
复制
import java.nio.charset.StandardCharsets;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;



/**
 * @author  
 *
 */
public class NamedPipeNativeFunctions {

    /*
     * Public Declare Function CallNamedPipe Lib "kernel32" Alias
     * "CallNamedPipeA" (ByVal lpNamedPipeName As String, lpInBuffer As Any,
     * ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As
     * Long, lpBytesRead As Long, ByVal nTimeOut As Long) As Long
     * 
     */
    public interface Kernel32 extends Library {
public long CallNamedPipe (String lpNamedPipeName,long  lpInBuffer ,long nInBufferSize, Pointer  lpOutBuffer,long nOutBufferSize, Pointer lpBytesRead, long  nTimeOut);
public boolean WaitNamedPipe(String lpNamedPipeName,
        int nTimeOut);
public boolean Beep(int FREQUENCY, int DURATION);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        myClass myclass = new myClass () ; 
        myClass myclass2 = new myClass () ; 

        Pointer lpOutBuffer =  myclass.getPointer() ; 
        Pointer lpBytesRead  =myclass2.getPointer()  ; 

        Kernel32 lib = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
        //lib.CallNamedPipe("1234TestPipe", 255, 255, lpOutBuffer , 255, lpBytesRead , 5000); 
        lib.Beep(698, 500); // works 
         boolean sucess =   lib.WaitNamedPipe("hgf" ,(int) 5000 ); // does not work 

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-14 14:54:27

WaitNamedPipe是一个#define,根据调用者是否分别使用ANSII或UNICODE,它要么是WaitNamedPipeA,要么是WaitNamedPipeW。源(请参阅Unicode和ANSI名称部分):https://msdn.microsoft.com/en-us/library/windows/desktop/aa365800(v=vs.85).aspx

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37813013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档