草庐IT

windows - 如何将 *char 转换为 _TCHAR?

这是我尝试过的,但它没有做任何事情。MultiByteToWideChar(CP_ACP,MB_COMPOSITE,optarg,-1,localdir,0); 最佳答案 在函数的开头添加:“USES_CONVERSION;”它允许您使用宏:“A2T”、“T2A”...所以您需要A2T享受 关于windows-如何将*char转换为_TCHAR?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c++ - memcpy 仅通过 C++ 复制一个字节

我正在尝试使用memcpy将TCHAR数组转换为BYTE数组,但memcpy函数仅将1个TCHAR从tchar数组复制到字节数组。我不知道为什么会这样。这是一个代码片段。TCHARtest[]=L"Thisisateststring,itspurposeistodosometesting!";DWORDtestSizeBytes=sizeof(TCHAR)*lstrlen(test);LPBYTEbyteArray=newBYTE[testSizeBytes+1];memcpy(byteArray,test,testSizeBytes);如果我使用这个片段,byteArray将只包含“

c++ - 使用扩展功能在整个系统中搜索文件

以下代码会产生运行时错误:Unhandledexceptionat0x773315deinWindowFileSearch.exe:0xC0000005:Accessviolation.我不知道是什么原因造成的。你能指出我的错误吗?这是可能包含罪魁祸首的函数:intfileSearcher::findFilesRecursivelly(constTCHAR*curDir,constTCHAR*fileName,boolcaseSensitive,TCHAR*output){HANDLEhFoundFile;WIN32_FIND_DATAfoundFileData;TCHARnextDi

c++ - 问题 - TCHAR 作为 LPARAM 到属于另一个进程/线程的窗口

所以我正在通过C书示例在Windows上玩/实现tomyown,并且有一些关于dll注入(inject)部分的东西让我感到困惑,我无法解决它。我创建了一个属于另一个线程/进程的对话框,我试图向它发送TCHAR变量,以便它可以在某些函数中使用该var(函数和tchar都在同一个dll文件中)因此,当创建对话框并在另一个线程中正常运行时,我会向它发送一条消息。首先我声明了tcharTCHARfinalpath[MAX_PATH];然后我只是用信息填充它(我在dll线程中执行此操作,而不是在对话框的线程中,让我还提到我必须在dll线程中执行此操作,因为那是填充所需tchar的唯一方法(我我需

windows - "TCHAR cFileName[MAX_PATH];"- MSDN 库中的错误?

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365740%28v=vs.85%29.aspxcFileNameThenameofthefile.MAX_PATH的值与几乎与_MAX_FNAME相同,但在这种情况下使用第一个会产生误导。无论如何,如果他们指的是带有名称的完整路径,它应该是cFileName[MAX_PATH+_MAX_FNAME];吗?使用MAX_PATH的目的是什么? 最佳答案 MAX_PATH常量表示整个路径的最大长度,包括文件名和扩展名。它是

windows - *A Win32 API 调用是否仍然相关?

我仍然看到有关使用LPTSTR/TCHAR类型等的建议,而不是LPWSTR/WCHAR。我相信Unicode的东西在Win2k中得到了很好的介绍,坦率地说,我不再为Windows98编写代码了。(当然,特殊情况除外。)考虑到我不关心Windows98(或者更不用说ME),因为它们是十年前的操作系统,是否有任何理由使用兼容性TCHAR等类型?为什么仍然建议人们使用TCHAR-它比直接使用WCHAR有什么好处? 最佳答案 如果有人告诉您要遍历1,000,000行非_UNICODEC++,其中大量声明使用char而不是wchar_t或TC

c++ - 与遗留 TCHAR 代码接口(interface)的正确样式

我正在修改广泛使用TCHAR的其他人的代码。在我的代码中只使用std::wstring是否更好?wstring应该等同于widechar平台上的TString,所以我看不出有什么问题。理由是,使用原始wstring比支持TCHAR更容易……例如,使用boost:wformat。下一个维护者会更清楚哪种风格?我自己浪费了几个小时试图理解字符串的复杂性,似乎只使用wstring就会减少你需要理解的一半内容。typedefstd::basic_stringTString;//onwinxp,TCHARresolvestowchar_ttypedefbasic_string,allocator

c++ - 在 C++ 中定义 Unicode 时映射格式说明符?

Mappingformatspecifier%sto%lswhen_tprintf()ismappedtowprintf()?我正在使用_T()宏将字符串映射到ASCII或Unicode,具体取决于是否定义了_UNICODE。但是,像_tprintf("%s",_T("textstring"))这样的调用给我带来了麻烦,因为在定义_UNICODE时类型不一致.我看到%ls应该用于Unicode字符串。当定义了_UNICODE时,如何将%s直接映射到%ls?有没有像_T()?这样的奇特函数 最佳答案 However,acalllike

windows - 两个 TCHAR 的不区分大小写的比较

比较两个单独的字符(char或UTF-16wchar_ts)忽略大小写的好方法是什么?一个简单的实现是大写或小写。其中一种被认为更好,还是有其他方法?我知道不可能对Unicode的所有细节进行完全正确的比较。比较主要是针对配置文件和微语法的一些基本解析,因此不需要完美。我正在寻找在每个字符比较的限制下不太错误的实现。[编辑]这些配置文件可能包含显示给用户的文本。另外,在分析用户输入时,我无法避免unicode文本。 最佳答案 您需要CompareStringEx。它采用宽字符并具有不区分大小写的标志。

C++ Windows 如何将 'unsigned int' 转换为 'TCHAR *'?

我是Windows上的C++新手。你能告诉我如何将unsignedint转换为TCHAR*吗? 最佳答案 通常的方法是使用swprintf将宽字符打印到wchar_t(TCHAR通常定义为)。要将数字打印到TCHAR中,您应该使用_stprintf,正如@hvd在下面提到的(一怒之下)。这样,如果定义了UNICODE,您将使用宽字符,如果未定义UNICODE,您将使用ASCII字符。intmyInt=400;TCHARbuf[300];//whereyouputresult_stprintf(buf,TEXT("Formatstri