首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C stdlib函数的Java等效项

C stdlib函数的Java等效项
EN

Stack Overflow用户
提问于 2018-09-10 22:59:05
回答 1查看 156关注 0票数 0

我想不出更好的标题,所以它就在这里。我正在试图找出从C的stdlib访问方法的最好的方法(在效率和干净的代码方面)。背景是,我试图在Java程序中获得mbstowcs的功能。现在,在我的C代码中,我得到了以下代码:

代码语言:javascript
复制
const char* source = "D:\\test3\\source\\test.txt";
SName tmp1;
mbstowcs((wchar_t*)tmp1, source, 32 - 1);

其中SNametypedef unsigned short SName[32]。在后面的代码中,tmp1被用作输入参数:

代码语言:javascript
复制
status = copyFilePath(tmp1, tmp2, info, &context);

我实际上想要做的是从Java端使用JNA调用这个copyFilePath。诀窍是我需要在Java程序中获得类似于C的mbstowcs的转换,这样以后我就可以直接调用这个函数,而不需要任何额外的处理。现在,在我看来,在使用JNI时,我需要额外的C代码,这样我才能从stdlib获得mbstowcs的包装器。

另一个问题是,Java有没有类似的方法将多字节字符串转换为宽字符字符串,就像在C/C++中一样?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 23:44:54

没有回答问题,而是试图帮助解决问题。JNA有com.sun.jna.WString。如果调用带有WString参数的函数,它将在本机代码中显示为宽字符串。你只需要确保你得到了正确的编码。

只需使用function.invoke(new WString(myString));,而不是在本机端提供多字节字符串的function.invoke(myString);

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

https://stackoverflow.com/questions/52260592

复制
相关文章

相似问题

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