草庐IT

tchar_pointer

全部标签

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常量表示整个路径的最大长度,包括文件名和扩展名。它是

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

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

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

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

python doc 到 docx 转换,comtypes.Documents.Open 抛出 ValueError : NULL COM pointer access

背景我有一个应用程序,我想在其中将.doc转换为.docx。之后处理.docx文件以进行数据挖掘。最终用户使用Web界面访问此服务。Web应用程序是在Django1.6中开发的。要将.doc转换为.docx,我们需要安装了MSOffice的Windows平台。话虽如此,我有一个正在运行的AWSWindowsServer2012R2实例(它是Windows64位)。我将Apache(64位)与mod_wsgi和Python2.7.8(64位)一起使用。现在,这是我将.doc转换为.docx的代码importtempfile,sysimportcomtypes,comtypes.clien

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

c++ - tchar 安全函数——UTF-8 常量的计数参数

我正在将一个库从char移植到TCHAR。根据MSDN,该片段的计数参数是多字节字符数,而不是字节数。那么,我做对了吗?我在VC9中的项目属性显示“使用unicode字符集”,我认为这是正确的,但我不知道这会如何影响我的计数参数。_tcsncmp(access,TEXT("ftp"),3);//ordoiwant_tcsnccmp?“仅在Windows平台上受支持,_mbsncmp和_mbsnbcmp是strncmp的多字节版本。_mbsncmp最多比较count个多字节字符,_mbsnbcmp最多比较count个字节。它们都使用当前的多字节代码页。_tcsnccmp和_tcsncmp

c++ - Windows C++ : LPCTSTR vs const TCHAR

在我的应用程序中,我在代码顶部附近声明了一个字符串变量,用于定义我在调用RegisterClassEx、CreateWindowEx等时使用的窗口类的名称。现在,我知道LPCTSTR是一个typedef并最终会跟随到一个TCHAR(好吧,一个CHAR或WCHAR,取决于是否定义了UNICODE),但我想知道使用这个是否会更好:staticLPCTSTRszWindowClass=TEXT("MyApp");或者这个:staticconstTCHARszWindowClass[]=TEXT("MyApp");我个人更喜欢使用来自JavaScript、PHP、C#背景的LPCTSTR,我从

c++ - 错误 C2446 : == : no conversion from const char * to TCHAR *

我在下面定义了一个TCHAR:TCHARszProcessName[MAX_PATH]=TEXT("");我想比较如下:if(szProcessName=="NDSClient.exe"){}但是我得到了错误:errorC2446:==:noconversionfromconstchar*toTCHAR*errorC2440:'==':cannotconvertfrom'constchar[14]'to'TCHAR[260]' 最佳答案 "NDSClient.exe"是Windows上的constchar*字符串。如果你想让它成为一

c++ - WM_POINTER 和高 DPI 设置

我已经在桌面触摸屏上使用Windows8TouchAPI(WM_POINTERDOWN/WM_POINTERUPDATE/WM_POINTERUP)工作了一段时间.然后我在Windows8平板电脑上尝试了我的测试程序,发现我的应用程序无法准确检测到用户触摸屏幕的位置。另一方面,使用鼠标效果很好:我得到了正确的坐标。由于我启用了EnableMouseInPointer(TRUE)模式,这意味着正在使用相同的代码来处理鼠标事件和触摸事件,这至少意味着我的代码在某种程度上可以正常工作。我发现,平板电脑启用了高DPI模式,使用户可以触摸屏幕上本来很小的东西。当我更改平板电脑上的DPI以消除缩放