كيفية زيادة معلومات الإصدار بعد كل إنشاء في Visual C++

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية237870
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
لم يكن Visual C++ ميزة لزيادة معلومات الموارد إصدار المشروع بعد كل إنشاء تلقائياً. توضح هذه المقالة طريقة لتوفير مثل هذه ميزة.
معلومات أخرى
يمكنك كتابة برنامج لتعديل ملف برنامج التحويل البرمجي (.rc) المورد بدلاً من استخدام الخطوات الموضحة هنا. ومع ذلك، يكون الملف RC تحت تحكم Visual C++. C++ المرئية بتعديل ملف RC أثناء الحفظ ثم قد يؤثر هذا على مورد الإصدار. يمكن تطبيق الأسلوب الموصوفة في هذا المقطع إلى أي مشروع Visual C++. يستخدم هذا المثال مشروع فئات Foundation Microsoft.

إنشاء مشروع جديد باستخدام Appwizard MFC (EXE) و تسميته MyProject. سيكون MyProject ملف MyProject.rc يتضمن MyProject.rc2. يتم تعني الملف .rc2 للموارد المعرفة من قبل المستخدم. اتبع هذه الخطوات زيادة معلومات الإصدار الخاصة MyProject بعد كل الإنشاء:
  1. إزالة مورد الإصدار من ملف .rc ووضعها في ملف .rc2:

    1. افتح كل MyProject.rc MyProject.rc2 (موجود في مجلد Res) في محرر نص. استخدام محرر Visual C++ ، انقر فوق فتح في القائمة "ملف" ثم حدد النص في القائمة فتح باسم الملف MyProject.rc.
    2. العثور على الإصدار عبارات المورد في MyProject.rc. يجب أن تبدو شيء ما مثل:
      /////////////////////////////////////////////////////////////////////// // // Version// VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x3fL#ifdef _DEBUG FILEFLAGS 0x1L#else FILEFLAGS 0x0L#endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0LBEGIN    BLOCK "StringFileInfo"    BEGIN        BLOCK "040904b0"        BEGIN            VALUE "Comments", "Sample Application\0"            VALUE "CompanyName", "Microsoft Corp.\0"            VALUE "FileDescription", "MyProject MFC Application\0"            VALUE "FileVersion", "1, 0, 0, 1\0"            VALUE "InternalName", "MyProject\0"            VALUE "LegalCopyright", "Copyright (C) 1999\0"            VALUE "OriginalFilename", "MyProject.EXE\0"            VALUE "ProductName", "MyProject Application\0"            VALUE "ProductVersion", "1, 0, 0, 1\0"        END    END    BLOCK "VarFileInfo"    BEGIN        VALUE "Translation", 0x409, 1200    ENDEND							
    3. قص مورد الإصدار من ملف MyProject.rc ولصقه في الملف MyProject.rc2 أدناه التعليق "إضافة يدوياً تحرير الموارد هنا." للحصول على معلومات حول معنى كل منها من الحقول في المورد راجع بيان المورد VERSIONINFO في التعليمات.
  2. استبدال البيانات FILEVERSION PRODUCTVERSION وحدات الماكرو FILEVER و PRODUCTVER. وبشكل مماثل، استبدال بيانات سلسلة FileVersion و ProductVersion وحدات الماكرو STRFILEVER و STRPRODUCTVER.
  3. إضافة # تتضمن VersionNo.h مباشرة قبل عبارة المورد VS_VERSION_INFO. الآن ستبدو مورد الإصدار مثل:
    /////////////////////////////////////////////////////////////////////// // // Version// #include "VersionNo.h"VS_VERSION_INFO VERSIONINFO FILEVERSION FILEVER PRODUCTVERSION PRODUCTVER FILEFLAGSMASK 0x3fL#ifdef _DEBUG FILEFLAGS 0x1L#else FILEFLAGS 0x0L#endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0LBEGIN    BLOCK "StringFileInfo"    BEGIN        BLOCK "040904b0"        BEGIN            VALUE "Comments", "Sample Application\0"            VALUE "CompanyName", "Microsoft Corp.\0"            VALUE "FileDescription", "MyProject MFC Application\0"            VALUE "FileVersion", STRFILEVER            VALUE "InternalName", "MyProject\0"            VALUE "LegalCopyright", "Copyright (C) 1997\0"            VALUE "OriginalFilename", "MyProject.EXE\0"            VALUE "ProductName", "MyProject Application\0"            VALUE "ProductVersion", STRPRODUCTVER        END    END    BLOCK "VarFileInfo"    BEGIN        VALUE "Translation", 0x409, 1200    ENDEND					
  4. إنشاء ملف رأس يسمى VersionNo.h في نفس المشروع الدليل. يحتوي هذا الملف على العبارات التالية والتي هي تعريفات وحدات الماكرو المستخدمة في الخطوة 2:
    #define FILEVER        1,0,0,1#define PRODUCTVER     1,0,0,1#define STRFILEVER     "1, 0, 0, 1\0"#define STRPRODUCTVER  "1, 0, 0, 1\0"						
    ملاحظة: إضافة تغذية و حرف إرجاع الأحرف في السطر الأخير.

    الآن، يتضمن ملف MyProject.rc MyProject.rc2 ويتضمن ملف MyProject.rc2 VersionNo.h.
  5. سيتم تعديل محتويات الملف VersionNo.h باستخدام ماكرو Visual Basic Script. الماكرو وصف أدناه مقابض الحدث BuildFinish Visual C++ ، لذا فإنه سوف لا يتم تشغيل حتى يتم إنشاء. عندما يتم استدعاء هذه التعليمة البرمجية برنامج VB فإنه بزيادة أرقام الإصدارات داخل ملف الرأس أولاً بواسطة مقدار ثابت ثم فإنه لحفظ الملف وإغلاق عليه. أثناء إنشاء لاحقة, يتم تضمين رقم الإصدار الجديد في الملف القابل للتنفيذ.

    لتثبيت واستخدام رمز برنامج VB قم بما يلي:

    1. فتح ملف DSM (الماكرو) موجود أو إنشاء ملف DSM جديد في Visual C++. لإنشاء ملف جديد انقر فوق "جديد" في قائمة "ملف" ، حدد ملف ماكرو في التبويب ملفات بإعطاء اسم للملف ثم انقر فوق موافق.
    2. قم بلصق التعليمة البرمجية برنامج VB التالية أدناه (لا يمكن تثبيت ملف DSM فارغ في Visual C++; يشرح الخطوة التالية لتثبيت):
      Function GetProjectDir(FullName)'VC++ doesn't provide any method for getting the path of the active project'See the VB Script reference for more information on the VB Script functions 'used in this functionDim proj_pathproj_path = Split(StrReverse(FullName),"\",-1,1)Dim countcount = UBound(proj_path)Dim full_pathfull_path = ""Dim ifor i = 1 to count 	full_path = full_path & "\" & proj_path(i)nextGetProjectDir = StrReverse(full_path)End FunctionSub ReplaceText(selection, count, incrementby)'selection represents the TextSelection object'count represents the position of the version number to be incremented'incrementby represents a number that will be added to the existing version numberselection.WordRight dsMove, countselection.WordRight dsExtend, 1Dim strstr = selection.Textstr = str + incrementbyselection.Text = strEnd SubSub Application_BuildFinish(numError, numWarning)'This event will be triggered after every build of a project'You can check numError and/or numWarning to determine if you want to continue'If numError <> 0 Then    'exit sub'Obtain the full path of the active projectDim full_pathfull_path = GetProjectDir(ActiveProject.FullName)full_path = full_path & "versionno.h"'Open the VersionNo.h fileDocuments.Open full_path'Obtain the TextSelection objectDim selectionset selection = ActiveDocument.Selectionselection.StartOfDocument 'Increment the version informationReplaceText selection, 9, 1selection.LineDownselection.StartOfLineReplaceText selection, 9, 1selection.LineDownselection.StartOfLineReplaceText selection, 10, 1selection.LineDownselection.StartOfLineReplaceText selection, 10, 1ActiveDocument.SaveActiveDocument.Close End Sub								
      ملاحظة: رمز هذا نموذج غير معتمد. قد تعديلها لسيناريو الإنشاء.
    3. تثبيت ملف DSM إذا لم يكن مثبتاً بالفعل. لتثبيت ، انقر فوق تخصيص في القائمة أدوات انقر فوق علامة التبويب الوظيفة الإضافية والملفات ماكرو ، استعرض لتحديد ملف DSM ثم انقر فوق إغلاق.
  6. حدد إنشاء MyProject.exe من القائمة بنية. بعد انتهاء الإنشاء فتح ملف VersionNo.h. سوف يحتوي على العبارات التالية:
    #define FILEVER        1,0,0,2#define PRODUCTVER     1,0,0,2#define STRFILEVER     "1, 0, 0, 2\0"#define STRPRODUCTVER  "1, 0, 0, 2\0"						
    إذا إنشاء التعليمات البرمجية مرة أخرى، هذا معلومات الإصدار في تضمينها في الملف التنفيذي وكنت يتزايد معلومات الإصدار. يمكن تقديم بعض التعليمات البرمجية في ماكرو وصفه من قبل لمنع أرقام الإصدارات incrementing إذا الإنشاء إنتاجها أخطاء.
مراجع
للحصول على مزيد من المعلومات حول طراز كائن Visual C++ راجع الموضوع التالي في مكتبة MSDN:
للحصول على مزيد من المعلومات حول وحدات الماكرو برنامج VB راجع الموضوع التالي في مكتبة MSDN:
للحصول على مزيد من المعلومات حول برنامج VB اللغة راجع الموضوع التالي في مكتبة MSDN:
للحصول على مزيد من المعلومات حول بيان المورد VERSIONINFO Visual C++ ، راجع الموضوع التالي في مكتبة MSDN:

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 237870 - آخر مراجعة: 12/05/2015 15:18:07 - المراجعة: 3.2

Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0

  • kbnosurvey kbarchive kbmt kbautomation kbdevstudio kbhowto kbide kbscript kbvcobj KB237870 KbMtar
تعليقات