- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JNA 为 C/C++ 调用一个 DLL api。DLL中的函数API是短DKT_init(LPCSTR name)。我将相应的java方法设置为public Short DKT_init(String name);但是当我调用它时,DLL API 返回参数错误。我想知道如何在 JNA 中映射 LPCSTR?因为 LPCSTR 是 cons char * 而 String 是 char *。
最佳答案
字符串是 LPCSTR 的适当映射。 JNA 将使用默认平台编码将修改后的 UTF16 字符转换为以 NUL 结尾的字节缓冲区。
您可以尝试传入显式字节数组(使用上面建议的替代方法映射),这将消除潜在的错误编码问题,例如
byte[] arg = { (byte)'f', (byte)'o', (byte)'o', (byte)0 };
您可以通过设置系统属性“jna.encoding”来更改使用的编码。
您还应该消除“LPCSTR”实际上是错误类型的可能性;如果函数需要一个可以写入的缓冲区,则 String 将不起作用,如果它实际上是 LPTCSTR 并且您使用的是 UNICODE,那么您需要传递一个 WString。
关于java - JNA在windows平台上映射LPCSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203807/
我有一个由 Install Shield 通过 InstallScript 调用的 C++ API 函数: SQLHELPER_API LPCSTR GetAvailableAppName(LPCST
我收到这个错误 UINT GetDriveTypeA(LPCSTR)': cannot convert argument 1 from 'LPCWSTR' to 'LPCSTR' 下面是我的代码。 v
在 vc++ 中,我有一个包含两个项目的解决方案。项目 A 有一个 dllLoader.h 和 dllLoader.cpp 用 LoadLibrary 加载一个 dll 我需要调用它在项目 B 中的功
我目前有一个名为 TextureObject 的类。在创建函数中,我创建纹理,并将类中的 LPCSTR 分配给函数中给定的参数。当我稍后返回那个 LPCSTR 时,它以一种意想不到的方式返回。 某些类
简单的问题。 如何检查 LPCSTR 上第一个位置的字符是什么? 或者只检查第一个位置是否有空格? 最佳答案 给定一个名为 str 的 LPCSTR,您可以使用 str[0] 访问第一个字符。例如:
这个问题在这里已经有了答案: How do I iterate over the words of a string? (83 个回答) 关闭 5 年前。 我现在已经苦苦挣扎了好几天,因为我对 C+
我正在编写一个简单的 XOR 加密程序,然后我注意到函数的返回值不是我期望看到的那种。 我在我的代码中找不到问题,任何人都可以帮助我吗? 程序代码如下: #include "windows.h" #i
你好,我的代码有问题。 LPCSTR mergeString(LPCSTR firstString, std::string secondString) { string convertedS
我已经尝试过 strcmp 和 lstrcmp。我什至尝试用 strlen 来做,但也没有用,这就是我所拥有的 void check(LPCSTR lpText) { if( strmp(lp
我有两个 LPCSTR,我需要像这样连接起来: if (!rename(directory + originalFileName, directory + fileName)){ std::c
我正在读取一个 ini 文件,然后想执行一个外部程序(VBS 文件)。但是我在字符串类型方面遇到了问题。 这是我的代码。 LPCTSTR path = _T(".\\my.ini"); TCHAR f
我发现了一个比较两个 LPCSTR 的实现,它执行以下操作: void check(LPCSTR lpText) { if(lpText == input) { //
我正在尝试使用 atoi() 将 LPCSTR 转换为整数,并验证转换是否成功我想计算它生成的整数和原始 LPCSTR 中的位数(它应该只包含整数) 我很难找到计算 LPCSTR 长度的好方法。到目前
我在 C 中使用 Win32 API,需要将 GUID 结构转换为 LPCSTR。我对 Win32 比较陌生,并没有找到太多关于这种类型转换的信息。 我确实设法使用 StringFromGUID2 函
我目前正在进入 ctypes 模块,并尝试调用 user32 函数 GetWindowText带有我已经通过使用 FindWindow 收到的 HWND 句柄。这次我想进一步处理并使用函数原型(pro
我在尝试将 LPCWSTR 转换为 LPCSTR 时遇到问题。 一些背景 我正在编写一个 VC++ 2010 应用程序,并且已经遇到了我必须从类型 System::String^ 转换为 std::s
请问如何将 LPCSTR 转 WCHAR* 转换成 Unicode 项目?我在网上找不到太多内容。 最佳答案 如果您不包含AtlBase.h或AtlConv.h header , #include
我试图在一个 dll 包装器中创建一个 c++ 函数,它接受一个 char *,将它转换为 LPCSTR,然后将它用作 MessageBox 中的一个变量。该函数和转换在原始类中运行良好,但当我尝试在
从帮助我创建按钮和其他东西的网站获得此代码。这些按钮工作但由于某种原因我在创建静态时遇到编译器错误。 无法从“const wchar_t [5]”转换为“char” 无法将参数 3 从“char”转换
这个问题在这里已经有了答案: Why does calling c_str() on a function that returns a string not work? (4 个答案) 关闭 6
我是一名优秀的程序员,十分优秀!