Java JNA调用C++;具有LPCWSTR参数的函数 我已经做了一个C++ DLL,它带有一个函数,它使用Unicode字符串(LPCWSTR类型):
我的一位同事正试图通过JNA对此进行呼叫Java JNA调用C++;具有LPCWSTR参数的函数 我已经做了一个C++ DLL,它带有一个函数,它使用Unicode字符串(LPCWSTR类型):,java,c++,unicode,jna,Java,C++,Unicode,Jna,我的一位同事正试图通过JNA对此进行呼叫 使用字符串作为参数失败(调用C++函数,但参数无效) 使用WString也失败了 不幸的是,不要引用LPCWSTR类型 对此有什么想法吗?与LPCWSTR和LPWSTR相当的JNI是WString Java字符串映射到char*或LPSTR或LPCSTR,但我相信将使用UTF-8尾端编码,因此仍然可以传递完整的字符集。事实上,我的同事没有正确声明WString,它现在可以工作了。您介意回答这个问题以便正确关闭它吗?Java字符串可以映射到LPCWSTR或
使用字符串作为参数失败(调用C++函数,但参数无效)
使用WString也失败了 不幸的是,不要引用LPCWSTR类型对此有什么想法吗?与
LPCWSTR
和LPWSTR
相当的JNI是WString
Java字符串映射到
char*
或LPSTR
或LPCSTR
,但我相信将使用UTF-8尾端编码,因此仍然可以传递完整的字符集。事实上,我的同事没有正确声明WString,它现在可以工作了。您介意回答这个问题以便正确关闭它吗?Java字符串可以映射到LPCWSTR
或LPWSTR
;如果您了解W32 API映射是如何设置的,您可以看到这些MS库是如何实现的,这些MS库支持函数签名的ANSII和UNICODE变体。本机层需要指示是否将Java字符串视为char*
或wchar\t*
,而WString
是最基本的方法。
extern "C" __declspec( dllexport ) HRESULT signFile(LPCWSTR fileName, LPCWSTR certSubject, LPCWSTR storeName);
HRESULT signFile(LPCWSTR fileName, LPCWSTR certSubject, LPCWSTR storeName)