gpt4 book ai didi

java - JNA 将 Java String 映射到 PCWSTR

转载 作者:太空宇宙 更新时间:2023-11-04 04:16:20 26 4
gpt4 key购买 nike

SHSTDAPI SHCreateItemFromParsingName(
PCWSTR pszPath,
IBindCtx *pbc,
REFIID riid,
void **ppv
);

我试图将上面的方法映射到这个方法:

WinNT.HRESULT SHCreateItemFromParsingName(String pszPath, Pointer p, Guid.REFIID riid, PointerByReference ppv);

编辑:

PointerByReference ppv = new PointerByReference();

Guid.REFIID rid = new Guid.REFIID(new Guid.IID(Shell32Extra.IID_IShellItem));

WinNT.HRESULT h = Shell32Extra.INSTANCE.SHCreateItemFromParsingName("*.txt",null,rid,ppv);

IShellItem shellItem = new IShellItem(ppv.getValue());

但是 HRESULT 抛出失败并返回 -2147024894

如果 pbc 不为空,它会抛出内存访问预期

我应该改变什么?我认为它可能因 PCWSTR 映射而失败。

最佳答案

虽然 technomage 会指出映射错误,但这些错误不会给您带来您得到的结果。 -2147024894 的 HRESULT 表示系统找不到该文件。您的 dd.txt 文件不在程序有权访问的路径中。

此外,您可以使用 WString 类型来指定您需要一个宽字符串。将您的 dd.txt(或更长的路径)包装在 WString 构造函数中并传递它。

关于java - JNA 将 Java String 映射到 PCWSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52012538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com