2009-12-30 80 views
0

我是JNA的新手,我想將DsGetDcName方法轉換爲JNA。JNA - DsGetDcNameA

DWORD DsGetDcName(
    __in LPCTSTR ComputerName, 
    __in LPCTSTR DomainName, 
    __in GUID *DomainGuid, 
    __in LPCTSTR SiteName, 
    __in ULONG Flags, 
    __out PDOMAIN_CONTROLLER_INFO *DomainControllerInfo 
); 

我已經轉換了上述函數JNA 我上述參數替換如下

public static class GUID extends Structure { 
    public int Data1; 
    public short Data2; 
    public short Data3; 
    public byte Data4[]= new byte[8]; 
} 

public static class DOMAIN_CONTROLLER_INFO extends Structure { 
    public String DomainControllerName; 
    public String DomainControllerAddress; 
    public int DomainControllerAddressType; 
    public GUID DomainGuid; // created Structure above 
    public String DomainName; 
    public String DnsForestName; 
    public int Flags; 
    public String DcSiteName; 
    public String ClientSiteName; 
} 

int DsGetDCName(
    String strComputerName, 
    String strDomainName, 
    GUID DomainGuid, // static class created extending with structure 
    String strSiteName, 
    int iFlags, 
    DOMAIN_CONTROLLER_INFO DomainControllerInfo // static class created extending with structure 
); 

上述函數返回997 Error (ERROR IO PENDING)。 方法聲明是正確的。有什麼可以幫助解決這個問題? 在此先感謝。

問候

帕萬·庫馬爾·A.

+0

該函數成功返回? 'GUID'和'DOMAIN_CONTROLLER_INFO'類型應該是指向結構體的指針... – 2010-01-06 00:56:57

回答

2

這在JNA 3.2.7實現com.sun.jna.platform.win32.Netapi32.DsGetDcName。使用Netapi32Util.DsGetDcName這是一個簡化的包裝。