سؤال

أحاول استخدام Micosoft هو سال الشرح ، ومع ذلك أحصل على التحذير التالية, و لا أعلم لماذا.

كمثال على ذلك, أنا خلق جديد C++ تطبيق وحدة التحكم, و هذا الكود:

#include <sal.h>

class Whatever
{
public:
    _Check_return_ int Method(__in int number) ;
};

int main()
{
    return 0;
}

عند ترجمة باستخدام Visual Studio 2008, أحصل على التحذير التالية:

تحذير C6540:استخدام السمة الشروح على هذه الوظيفة سوف يبطل كل القائمة __declspec الشروح

في ملف "c1xxast"

ما الخطأ الذي فعلته ؟ إذا كنت إزالة إما _Check_return_ أو __in, تحذير يذهب بعيدا.

لا أستطيع أن أجد أي إشارة إلى التحذير C6550.إلا أن نفس النص يمكن العثور عليها هنا: http://msdn.microsoft.com/en-us/library/dd445322.aspx, لكنها ليست مفيدة جدا.

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

المحلول

قد تكون المشكلة لأنه يتم خلط سال أنواع الشرح.على الرغم من واضحة جدا على MSDN, هناك نوعان من سال الشرح:السمة ...إيه ...لا.

على #defines في <sal.h> VC2005 استخدام غير السمة الإصدارات تبدأ مع تسطير تليها صغيرة رسالة.أحدث VC2008 الإصدارات توسيع مترجم سمات والبدء في (نهاية) مع تسطير تليها رأس المال رسالة.

لديك خلط نوعين:

السمة:

  • _In_
  • _Check_return_

غير السمة:

  • __في
  • __checkReturn

محاولة تغيير شروح استخدام نوع واحد على الدوام.

هذا بلوق وظيفة ويوضح أكثر قليلا حول هذا الموضوع.

نصائح أخرى

يجب إضافة سال شروح الإعلان وتعريف الطريقة.انا التخمين سال بالضيق لأنه لا يمكن العثور على تعريف طريقة يفترض سمات مفقودة.

تحرير التوضيح

سال annotions يجب أن تظهر على كل مواقع غير مجردة الأساليب.مجردة أساليب سال لن ابحث عن التعريف.في تكوينات معينة فإنه في الواقع ضمان تنفيذ واجهة المناسبة الرموز.

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