字符串比较在 Visual C++ 中不起作用 2005年

发布于 2024-07-15 23:29:02 字数 281 浏览 6 评论 0原文

如果从注册表中获得一个铃声,并且当我将其放入消息框中时它会正确显示。 ::MessageBoxW(0, (LPCWSTR)achValue, _T("找到"), MB_YESNO);

该值存储在 archValue 中,它是一个 DWORD。 我想做的是将其与以下字符串“2.0.7045.0”进行比较,但 strcmp 对我不起作用。

任何关于如何做到这一点的想法将不胜感激。 C++ 相当垃圾,而且我无法轻松调试,因为它在 dll 中。

非常感谢

托尼

If get a gring from the registry and it correctly displays when I place it in a message box.
::MessageBoxW(0, (LPCWSTR)achValue, _T("Found"), MB_YESNO);

The value is stored in archValue which is a DWORD. What I want to do is compare it to the following string "2.0.7045.0" but strcmp fails to work for me.

Any ideas on how to do this wiould be greatly appreciated.
Pretty rubbish at c++ and I cant debug easily as its in a dll.

Much appreciated

Tony

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

久光 2024-07-22 23:29:02

您需要使用 strcmp 的宽字符版本: wcscmp< /a>.

You need to use the wide char version of strcmp: wcscmp.

风月客 2024-07-22 23:29:02

这个问题令人困惑; 您在从注册表获取数据或执行 strcmp 时遇到问题?

您从注册表中得到一个 DWORD (???) ,应该类似于“2.0.7045.0”? 您不确定它不是字符串 (REG_SZ) 吗?

如果您可以从注册表中获取该字符串,您应该能够进行字符串比较; 请记住,如果字符串相等,strcmp(或其他类似的函数/方法)将返回 0(零)。

The question is confusing; you have problem getting the data from the registry or doing a strcmp ?

You get a DWORD (???) out of the registry that should be something like "2.0.7045.0" ? aren't you certain it's not a string (REG_SZ) ?

If you can get the string out of the registry, you should be able to do a string compare; remember that strcmp (or other similar functions/methods) return 0 (zero) if the strings are equals.

羅雙樹 2024-07-22 23:29:02

你有地狱般的弦乐混合。

MessageBoxW - 适用于 unicode 字符串。
_T("Found") - 如果需要的话添加 unicode 说明符的宏(依赖于项目设置中的定义)。
LPCWSTR - unicode 字符串 (const wchar_t*)。
strcmp - 比较非 unicode 字符串。

您应该使用所有功能的一种类型。 w 或 t 或非 unicode 字符串。

You have hells blend of strings.

MessageBoxW - works with unicode strings.
_T("Found") - macro which add unicode specifier if needed (dpeneded from define in prject settings).
LPCWSTR - unicode string (const wchar_t*).
strcmp - compare for non unicode strings.

you should use one type of all function. w or t or non-unicode strings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文