Konwertowanie ciągu znaków na wskaźnik dla JNA

Próbuję użyć JNA do sprawdzenia skutecznych uprawnień do pliku w systemie Windows. Ostatecznie planuję użyćFunkcja GetEffectiveRightsFromAcl, ale aby to zrobić, muszę podać wskaźnik do wypełnionegoStruktura TRUSTEE. Platforma JNA (platforma.jar) nie wydaje się definiować tej struktury, więc zamiast tego próbuję ją zdefiniować. Oto, co mam do tej pory:

<code>public static class TRUSTEE extends Structure {
    public TRUSTEE() {
        super();
    }
    public TRUSTEE(Pointer p) {
        super(p);
        read();
    }

    public Pointer pMultipleTrustee;
    public int MultipleTrusteeOperation;
    public int TrusteeForm;
    public int TrusteeType;
    public Pointer ptstrName;
}
</code>

Próbuję wypełnić taką strukturę:

<code>private TRUSTEE createTrusteeForCurrentUser() {
    TRUSTEE result = new TRUSTEE();
    result.TrusteeForm = TRUSTEE_FORM.TRUSTEE_IS_NAME;
    result.TrusteeType = TRUSTEE_TYPE.TRUSTEE_IS_USER;

    String strName = "CURRENT_USER";
    // How can I set result.ptstrName using strName?
}
</code>

Ten wątek Grup dyskusyjnych Google zaleca używanieString pola w strukturach, gdy achar * jest wymagane. Nie sądzę jednak, aby było to właściwe w mojej sytuacji, biorąc pod uwagęptstrName pole może wskazywać różne typy rzeczy, w zależności od wartościTrusteeForm. Więc myślę, że muszę jakoś się przekonaćString doPointer zamiast. znalazłemNativeString klasa w JNA, która działałaby, z wyjątkiem klasy prywatnej pakietu.

Jaki jest zalecany sposób konwersji JavaString do natywnego formatu i uzyskaćPointer do tego? Czy używam nawet odpowiedniego typu danych dlaTRUSTEE struct? Jestem trochę nowy w JNA, więc proszę wybacz mi, jeśli brakuje mi czegoś oczywistego.

Aktualizacja

Znalazłem rozwiązanie mojego problemu, ale jeśli ktoś ma lepsze rozwiązanie, nadal chciałbym to usłyszeć.

questionAnswers(3)

yourAnswerToTheQuestion