- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在将 Windows 库转换为 Linux。我需要在 linux 中找到 LPTSTR 和 LPCSTR。
我知道我可以使用 wchar_t 可以使用,但我不确定是否使用它。
其中一种使用LPTSTR的方法如下:
void ErrorExit(LPTSTR zFunction)
{
}
任何帮助将不胜感激!
最佳答案
在 Linux 中,您通常不会将 wchar_t
用于库 API 函数。大多数库使用 UTF-8 编码的字符串,因此它们将以 NUL 结尾的字符的普通数组作为字符串(IMO 这比使用 ANSI 和 Unicode 版本复制所有函数要好得多)。
所以,考虑到这一点:
LPCTSTR
, LPCSTR
, LPCWSTR
-> const char *
.LPTSTR
, LPSTR
, LPWSTR
-> char *
.如果你坚持使用 Unicode 函数,MS 风格,你必须知道它们实际上使用 UTF-16 编码的字符串,并且 wchar_t
不是可移植类型,因为它的大小没有指定通过语言。相反,您可以使用 uint16_t
:
LPCWSTR
-> const uint16_t *
。LPWSTR
-> uint16_t *
。如果你想要额外的 MS 兼容,你可以使用 UNICODE
宏有条件地将 LPTSTR
和 LPTCSTR
类型定义为其中之一其他的,但这可能不需要解决您的问题。
关于c - 什么是 LPTSTR 和 LPCSTR 的 Linux 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574670/
我有一个由 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
我是一名优秀的程序员,十分优秀!