- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
#include "stdafx.h"
#include <string>
#include <windows.h>
using namespace std;
int main()
{
string FilePath = "C:\\Documents and Settings\\whatever";
CreateDirectory(FilePath, NULL);
return 0;
}
错误:错误 C2664:“CreateDirectory”:无法将参数 1 从“const char *”转换为“LPCTSTR”
最佳答案
std::string
是一个包含基于char
的数据的类。要将 std::string
数据传递给 API 函数,您必须使用其 c_str()
方法获取指向字符串的实际数据。
CreateDirectory()
将 TCHAR*
作为输入。如果定义了 UNICODE
,则 TCHAR
映射到 wchar_t
,否则它映射到 char
。如果您需要坚持使用 std::string
但不想让您的代码识别 UNICODE
,请改用 CreateDirectoryA()
,例如:
#include "stdafx.h"
#include <string>
#include <windows.h>
int main()
{
std::string FilePath = "C:\\Documents and Settings\\whatever";
CreateDirectoryA(FilePath.c_str(), NULL);
return 0;
}
要使此代码能够识别 TCHAR
,您可以改为这样做:
#include "stdafx.h"
#include <string>
#include <windows.h>
int main()
{
std::basic_string<TCHAR> FilePath = TEXT("C:\\Documents and Settings\\whatever");
CreateDirectory(FilePath.c_str(), NULL);
return 0;
}
然而,基于 Ansi 的操作系统版本早已过时,现在一切都是 Unicode。 TCHAR
不应再在新代码中使用:
#include "stdafx.h"
#include <string>
#include <windows.h>
int main()
{
std::wstring FilePath = L"C:\\Documents and Settings\\whatever";
CreateDirectoryW(FilePath.c_str(), NULL);
return 0;
}
关于c++ - 为 CreateDirectory 将 'const char*' 转换为 'LPCTSTR',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14370982/
我正在尝试在 MFC 应用程序中使用 listbox.Addstring();,它将采用 LPCTSTR。我正在传递一个长度为 33 个字符的 char 数组变量。 ListBox.AddString
This question is unlikely to help any future visitors; it is only relevant to a small geographic are
我一直致力于使用 FindFirstFile 和 FindNextFile 反向搜索目录的系统,但我遇到了一个我不明白的问题。 下面是一段代码。 int WINAPI WinMain(HINSTANC
我可以知道如何执行以下转换吗? // el.strCap is char[50] // InsertItem is expecting TCHAR pointer (LPCTSTR) // How I
如何将数字附加到 LPCTSTR?我正在使用的库采用 LPCTSTR 作为 com 端口地址。我知道如何使用 char* 执行此操作,但不知道如何使用 LPCTSTR。这就是我想要做的(假设 spri
我正在为一个 WindowsCE CAB 文件实现一个自定义操作,我需要连接一个 LPCTSTR 以获得一个正确的 exe 路径。 我的自定义操作接收一个 LPCTSTR 作为参数。 所以(伪代码):
我有这样的函数,它接受可变数量的参数和构造 字符串并将其传递给另一个函数以打印日志。 logverbose( const char * format, ... ) { char buffer[1024
LPCTSTR applicationName = NUL // NULL => module name from command line string argument1 = "something
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: C++ std::string conversion problem on Windows How to c
我在编写代码时遇到了问题。我使用一个函数,该函数将类型为 LPCSTR 的参数对象作为参数对象。对象声明如下所示:LPCTSTR lp文件名;首先,我使用定义的变量,它被进一步分配给 lpFileNa
如何获取 LPCTSTR 的子字符串? 最佳答案 LPCSTR只是 char * 的花哨名称,它没有方法。 如果您使用 std::string 您可以使用 find 和 substr 方法来提取字符串
我有一个需要 LPCTSTR 的类。 当我打电话时: 新 CFileImageLoader(_T("Splash02.png"))或者 新的 CFileImageLoader("Splash02.pn
// Convert to a wchar_t* size_t origsize = strlen(toChar) + 1; const size_t newsize = 100; size_t co
我正在尝试再写第二行,但我不知道该使用哪个代码。 我尝试过使用\r\n、\n、\r 等,但他们都没有工作。 感谢所有帮助过的人! :) 这是我的代码的一部分。(我也包括了标题。) HINSTANCE
我正在使用 visual studio 2010 MFC 构建 C++ 程序。我的程序调用了一个不属于项目的 DLL,它接受一个 char*。我有一个函数可以获取 LPCTSTR 格式的字符串。我现在
我正在尝试将一些文本放入静态文本小部件中,如下所示: m_StartupTime.SetWindowText(someStringVariable); 并得到一个错误: 'CWnd::SetWindo
我创建了一个 md5 哈希器,它接受一个文件并返回哈希值。 我使用“hFind = FindFirstFile(dir, &data)”来列出目录中的文件。 为了将这些文件的路径传递给我的哈希函数,我
这个问题在这里已经有了答案: What does LPCWSTR stand for and how should it be handled? (3 个答案) 关闭 9 年前。 我在理解和让它正常
也许任何人都可以向我解释一下: bool Func1(LPCTSTR sData) { if (sData) { ... } } 我这样调用函数: CString str = _T("");
我想使用 LoadLibrary 开发一个插件系统。 我的问题是:我希望我的函数采用 const char* 而 LoadLibrary 采用 LPCTSTR。 我有一个聪明的想法来做(LPCSTR)
我是一名优秀的程序员,十分优秀!