Test value of LPTSTR
我有两个要比较的字符串。我正在关注此页面的命名管道服务器/客户端示例:http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa365592(v = vs.85).aspx
无论如何,在我的" GetAnswerToRequest"中,我定义了这样的字符串
LPTSTR选项= TEXT("这是测试");
,然后尝试将其与客户端发送的pchRequest参数进行比较,该参数是相同的字符串。我找不到能解决问题的有效比较。
当我将两个值都放在调试器中时,我看到了一些区别。作为选择,我相信它使用的是单字节字符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | - option,15 [0x00000000] 0x0054 unsigned short [0x00000001] 0x0048 unsigned short [0x00000002] 0x0049 unsigned short [0x00000003] 0x0053 unsigned short [0x00000004] 0x0020 unsigned short [0x00000005] 0x0049 unsigned short [0x00000006] 0x0053 unsigned short [0x00000007] 0x0020 unsigned short [0x00000008] 0x0041 unsigned short [0x00000009] 0x0020 unsigned short [0x0000000a] 0x0054 unsigned short [0x0000000b] 0x0045 unsigned short [0x0000000c] 0x0053 unsigned short [0x0000000d] 0x0054 unsigned short [0x0000000e] 0x0000 unsigned short |
,对于pchRequest值,看起来像是使用双字节字符:
1 2 3 4 5 6 7 8 9 10 11 12 | - pchRequest,15 [0x00000000] 0x4854 unsigned short [0x00000001] 0x5349 unsigned short [0x00000002] 0x4920 unsigned short [0x00000003] 0x2053 unsigned short [0x00000004] 0x2041 unsigned short [0x00000005] 0x4554 unsigned short [0x00000006] 0x5453 unsigned short [0x00000007] 0x5a00 unsigned short [0x00000008] 0x48c0 unsigned short [0x00000009] 0x18cf unsigned short [0x0000000a] 0x0000 unsigned short |
因此..大多数十六进制值都匹配,但是pchRequest中每个字符有两个,而我的option变量中有一个。我认为这就是使
此外,pchRequest似乎还可能包含一些额外的字符,但我无法确定它们来自何处。据我所知,关于如何比较这两个字符串的任何想法都应该是相同的?
谢谢!
您大概具有Unicode构建,这意味着
为此,只需删除
1 | char* option ="THIS IS A TEST"; |
然后使用