标签: lpcstr

LPCWSTR代表什么,应如何处理?

首先,究竟是什么?我猜它是一个指针(LPC意味着长指针常量),但"W"是什么意思?它是指向字符串的特定指针还是指向特定字符串的指针?例如,我想关闭一个名为"TestWindow"的窗口.

HWND g_hTest;
LPCWSTR a;
*a = ("TestWindow");
g_hTest = FindWindowEx(NULL, NULL, NULL, a);
DestroyWindow(g_hTest);
Run Code Online (Sandbox Code Playgroud)

代码是非法的,它不起作用,因为const char [6]无法转换为CONST WCHAR.我根本得不到它.我想清楚地了解所有这些LPCWSTR,LPCSTR,LPSTR.我试图找到一些东西,但我更加困惑.在msdn网站FindWindowEx被声明为

HWND FindWindowEx(      
    HWND hwndParent,
    HWND hwndChildAfter,
    LPCTSTR lpszClass,
    LPCTSTR lpszWindow
);
Run Code Online (Sandbox Code Playgroud)

所以最后一个参数是LPCSTR,编译器要求LPCWSTR.请帮忙.

c++ winapi lpcstr

79
推荐指数
3
解决办法
13万
查看次数

如何找到LPCSTR的长度

我正在尝试使用atoi()将LPCSTR转换为整数,并验证转换是否成功发生我想计算它生成的整数和原始LPCSTR中的位数(它应该只包含整数)

我很难找到计算LPCSTR长度的好方法.到目前为止,唯一的方法似乎只是计数,直到我达到'/ 0'

有什么建议更好的方法吗?

谢谢

c++ lpcstr

10
推荐指数
4
解决办法
2万
查看次数

C++ CLI System.String ^到MFC LPCTSTR

如何将系统(.net)C++\CLI String^转换为MFC C++ LPCTSTR字符串.

很容易LPCTSTR进入String^,但到目前为止没有发现任何相反的做法.

c++ string mfc c++-cli lpcstr

9
推荐指数
1
解决办法
1万
查看次数

LPTSTR 和 LPCSTR C++

因此,函数 GetUserName() 的输出将用户名作为 LPTSTR。我需要将其转换为 LPCSTR,因为我希望用户名是 ftp 目录的名称。

TCHAR id [UNLEN+1];
DWORD size = UNLEN+1;
GetUserName(id, &size); // this is an LPTSTR

FtpCreateDirectory(hFtpSession,id) // 2d parameter should be an LPCSTR
Run Code Online (Sandbox Code Playgroud)

问题是我需要将 LPTSTR 字符串转换为 LPCSTR 字符串。现在我知道了:

LPTSTR 是一个(非常量)TCHAR 字符串,而 LPCSTR 是一个常量字符串。

但是如何将 TCHAR 转换为 const 字符串?

我应该注意我没有丰富的编程/C++ 背景,我还应该注意我正在编译多字节,而不是 unicode。

c++ lptstr lpcstr

6
推荐指数
1
解决办法
9505
查看次数

什么是Linux相当于LPTSTR和LPCSTR?

我正在将Windows库转换为linux.我需要在linux中找到LPTSTR和LPCSTR.

我知道我可以使用wchar_t可以使用,但我不确定使用它.

使用LPTSTR的方法之一如下:

void ErrorExit(LPTSTR zFunction)
{
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

c linux porting lptstr lpcstr

6
推荐指数
2
解决办法
5424
查看次数

如何比较 LPCSTR

我已经尝试过 strcmp 和 lstrcmp 。我什至尝试用 strlen 来完成它,但也没有成功,这就是我所拥有的

void check(LPCSTR lpText)
{
    if( strmp(lpText, "test") == 0)
    {
        MessageBoxW(0, L"equal", 0, 0); 
    }
    else
    {
        MessageBoxW(0, L"not equal", 0, 0); 
    }
}
Run Code Online (Sandbox Code Playgroud)

无论如何它总是返回 1,如果重要的话,设置中的字符集也设置为“使用多字节字符集”。

c++ compare lpcstr

4
推荐指数
1
解决办法
7709
查看次数

将两个LPCSTR与==进行比较

我找到了一个比较两个LPCSTR执行以下操作的实现:

void check(LPCSTR lpText)
{
    if(lpText == input)
    {
         // do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是它有效.我换成了......

if(lstrcmpi(lpText, input) == 0)
{
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

虽然我觉得现在更安全.

我只是想知道其他实现是否只是检查地址或大小,它是如何工作的?

我检查了一个LPCSTR的内存地址,它是0x0633522c,另一个是0x028a91a4.

这震撼了我的整个基础.

c++ string mfc lpcstr

4
推荐指数
1
解决办法
420
查看次数

FindFirstFile LPCSTR

你好,我的代码问题在这里.

LPCSTR mergeString(LPCSTR firstString, std::string secondString)
{
    string convertedString = ConvertString(firstString);
    LPCSTR mergedString;
    int i = convertedString.size();

    convertedString.insert(i, secondString);
    mergedString = (convertedString.c_str());

    return mergedString;
}

void GetFiles(LPCSTR path)
{
    WIN32_FIND_DATA File_Data; 
    LPCSTR lPath = mergeString(path,"\\*.txt");
    FindFirstFile(lPath, &File_Data);
    wcout << File_Data.cFileName;
}
Run Code Online (Sandbox Code Playgroud)

你传入你想要在GetFiles(LPCSTR路径)中使用的路径然后我使用mergestring函数将路径与扩展(\*.txt)合并在一起所有工作,除非它返回LPCSTR然后它只是很多奇怪的人物,我不知道为什么或这是一个更好的方法来做到这一点?

c++ windows string winapi lpcstr

3
推荐指数
1
解决办法
3347
查看次数

如何将LPTSTR转换为LPCTSTR?

我需要转换:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839(v=vs.85).aspx

lpstrFileTitle
Type: LPTSTR
The file name and extension (without path information) of the selected file. This member can be NULL.
Run Code Online (Sandbox Code Playgroud)

即使在MSVC++ 2012 Express中,它也说它的LPSTR.

http://msdn.microsoft.com/en-us/library/windows/desktop/bb172802(v=vs.85).aspx

pSrcFile [in]
Type: LPCTSTR
Pointer to a string that specifies the filename. If the compiler settings require Unicode, the data type LPCTSTR resolves to LPCWSTR. Otherwise, the string data type resolves to LPCSTR. See Remarks.
Run Code Online (Sandbox Code Playgroud)

我非常感谢.:)

char szFileName[MAX_PATH] = {0};
char szFileTitleName[MAX_PATH] = {0};
HRESULT hr = S_OK;
RtlZeroMemory(&gc.ofn, sizeof(gc.ofn));

gc.ofn.lStructSize      =   sizeof(gc.ofn); …
Run Code Online (Sandbox Code Playgroud)

c++ winapi lptstr lpcstr

3
推荐指数
1
解决办法
3397
查看次数

如何连接两个 LPCSTR

我有两个 LPCSTR 我需要像这样连接:

if (!rename(directory + originalFileName, directory + fileName)){
    std::cout<<originalFileName<<std::endl<<fileName<<std::endl<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)

然而,唯一的问题是我不能在+这里使用运算符。我怎样才能像这样安全地连接两个 LPCSTR?

编辑:请注意,LPCSTR 被定义为,const * char而 LPCTSTR 被定义为const TCHAR*。当定义了 UNICODE 和/或 _UNICODE 时,两者是不同的。在这种情况下,他们是。

c++ concatenation lpcstr

3
推荐指数
1
解决办法
4396
查看次数

标签 统计

lpcstr ×10

c++ ×9

lptstr ×3

string ×3

winapi ×3

mfc ×2

c ×1

c++-cli ×1

compare ×1

concatenation ×1

linux ×1

porting ×1

windows ×1