第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Java 中使用 SHGetFileInfo 和 JNA

在 Java 中使用 SHGetFileInfo 和 JNA

鴻蒙傳說 2022-08-17 15:53:29
我試圖用JNA將SHGetFileInfo函數(shù)從Shell32轉(zhuǎn)換為Java,并使用C#代碼和這個作為參考而在C#代碼中,psfi.iIcon在我翻譯的Java代碼中是432 psfi.iIcon是0。如果我是對的,對于同一個文件,無論我使用哪種語言,它們都應(yīng)該是相同的,不是嗎?我的 Java 代碼:public static void main(String[] args) {    String path = "[PATH_TO_EXE]\\test.exe"; //Of course in my code I used the real path    SHFILEINFO sfi = new SHFILEINFO();    DWORD_PTR i = Shell32.INSTANCE.SHGetFileInfo(path, 0, sfi, sfi.size(), SHGFI.SysIconIndex);    System.out.println(sfi.iIcon); //<-- Prints 0, should print 432}public static class SHGFI {    static final int SysIconIndex = 0x000004000;    static final int LargeIcon = 0x000000000;    static final int UseFileAttributes = 0x000000010;}public interface Shell32 extends StdCallLibrary {    Shell32 INSTANCE = Native.loadLibrary("shell32", Shell32.class, W32APIOptions.UNICODE_OPTIONS);    DWORD_PTR SHGetFileInfo(String pszPath, int dwFileAttributes, SHFILEINFO psfi, int cbFileInfo, int uFlags);}public static class SHFILEINFO extends Structure {    public HICON hIcon;    public int iIcon;    public DWORD dwAttributes;    public char[] szDisplayName = new char[260];    public char[] szTypeName = new char[80];    @Override    protected List<String> getFieldOrder() {        return Arrays.asList("hIcon", "iIcon", "dwAttributes", "szDisplayName", "szTypeName");    }}我做錯了什么基礎(chǔ)嗎?我是JNA和Windows功能的新手
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻2036條經(jīng)驗 獲得超8個贊

“備注”部分下,有這樣一條信息,恕我直言,這可能是您問題的根源

必須在調(diào)用 時或之前初始化組件對象模型 (COM)。CoInitializeOleInitializeSHGetFileInfo

這是一個非常直接的電話

CoInitialize(null);

正如DanielWiddis在評論中指出的那樣,根據(jù)文檔

應(yīng)調(diào)用新應(yīng)用程序而不是CoInitializeExCoInitialize

若要優(yōu)雅地關(guān)閉 COM 庫,必須通過對 的相應(yīng)調(diào)用來平衡對 或 (包括返回的) 的每次成功調(diào)用CoInitializeCoInitializeExS_FALSECoUninitialize

CoInitializeEx(null, 0);
CoUninitialize();



查看完整回答
反對 回復 2022-08-17
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號