سؤال

إذا تحصل على gring من التسجيل ويعرض بشكل صحيح عندما وضعه في مربع الرسالة. :: MessageBoxW (0، (LPCWSTR) achValue، _T ( "العثور على")، MB_YESNO)؛

ويتم تخزين قيمة في archValue وهو DWORD. ما أريد القيام به هو مقارنته السلسلة "2.0.7045.0" بعد ولكن strcmp فشل في العمل بالنسبة لي.

وأي أفكار بشأن كيفية القيام بذلك wiould سيتم تقدير كبير. القمامة جميلة في ج ++ وأنا غير قادر على تصحيح بسهولة كما في دلل.

وتقدير كبير

وتوني

هل كانت مفيدة؟

المحلول

وتحتاج إلى استخدام الإصدار اسعة شار من strcmp: <لأ href = "http://msdn.microsoft.com/en-us/library/e0z9k731(VS.80).aspx" يختلط = "نوفولو noreferrer" > wcscmp .

نصائح أخرى

والسؤال هو مربك. لديك مشكلة في الحصول على البيانات من التسجيل أو القيام strcmp؟

ويمكنك الحصول على DWORD (؟؟؟) من التسجيل الذي ينبغي أن يكون شيء من هذا القبيل "2.0.7045.0"؟ لا أنت متأكد من انها ليست سلسلة (REG_SZ)؟

إذا كنت تستطيع الحصول على سلسلة من التسجيل، يجب أن تكون قادرة على القيام سلسلة مقارنة. تذكر أن strcmp (أو وظائف أخرى مماثلة / طرق) عودة 0 (صفر) إذا كانت السلاسل متساوين.

لديك الجحيم مزيج من السلاسل.

وMessageBoxW - يعمل مع سلاسل يونيكود
. _T("Found") - ماكرو التي تضيف يونيكود محدد إذا لزم الأمر (dpeneded من تحديد في إعدادات prject)
. LPCWSTR - سلسلة يونيكود (const wchar_t*)
. strcmp - مقارنة سلاسل غير يونيكود.

ويجب عليك استخدام نوع واحد من كل وظيفة. ث أو تي أو غير يونيكود السلاسل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top