วิธีการเพิ่มข้อมูลรุ่นหลังจากแต่ละโครงสร้างใน c ++ Visual

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:237870
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
สรุป
c ++ภาพไม่มีคุณลักษณะในการเพิ่มทรัพยากรข้อมูลรุ่นของโครงการหลังจากแต่ละโครงสร้างโดยอัตโนมัติ บทความนี้อธิบายวิธีการหนึ่งเพื่อให้คุณลักษณะอย่างหนึ่ง
ข้อมูลเพิ่มเติม
คุณสามารถเขียนโปรแกรมการปรับเปลี่ยนแฟ้มของคอมไพเลอร์ (.rc) ทรัพยากรแทนการใช้ขั้นตอนที่อธิบายไว้ที่นี่ อย่างไรก็ตาม RC แฟ้มอยู่ภายใต้การควบคุมของ c ++แสดงผล c ++ visual ปรับเปลี่ยนแฟ้ม RC ขณะบันทึก และอาจมีผลต่อทรัพยากรรุ่น วิธีการอธิบายไว้ในส่วนนี้สามารถถูกประยุกต์ใช้กับโครงการ c ++ Visual ใด ๆ ตัวอย่างนี้ใช้โครงการ Microsoft มูลฐานคลาส

สร้างโครงการใหม่โดยใช้ Appwizard MFC (EXE) และเรียกใช้ได้MyProject. MyProject จะมีแฟ้มแบบ MyProject.rc ซึ่งรวมถึง MyProject.rc2 แฟ้ม.rc2 คือ meant สำหรับทรัพยากรที่กำหนดโดยผู้ใช้ ทำตามขั้นตอนเหล่านี้เพื่อเพิ่มข้อมูลรุ่นของ MyProject หลังจากแต่ละรุ่นต่อ:
  1. ลบทรัพยากรรุ่นจากแฟ้ม.rc และวางในแฟ้ม.rc2:

    1. เปิด MyProject.rc และ MyProject.rc2 (พบได้ในโฟลเดอร์ Res), ในตัวแก้ไขข้อความ เมื่อต้องใช้ตัวแก้ไข c ++ Visual คลิกOPENในการแฟ้ม:เมนูและเลือกข้อความในการเปิดเป็นรายการแฟ้ม 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 สคริปต์ แมโครอธิบายใต้จัดการเหตุการณ์ BuildFinish c ++ Visual ดังนั้นจะไม่สามารถ fired จนกว่าการสร้างการเสร็จสมบูรณ์ ทุกครั้งที่เรียกว่ารหัส VB สคริปต์นี้ จะเพิ่มหมายเลขรุ่นภายในส่วนหัวของแฟ้ม ด้วยการยอดเงินคงที่แรก นั้นจะบันทึกแฟ้ม และปิดนั้น ในระหว่างการสร้างที่ตามมา หมายเลขเวอร์ชันใหม่ถูกรวมในการปฏิบัติการ

    เมื่อต้องการติดตั้ง และใช้รหัสของ VB สคริปต์ ดำเนินการต่อไปนี้:

    1. เปิดแฟ้ม DSM (แมโคร) มีอยู่ หรือสร้างแฟ้ม DSM ใหม่ใน c ++ Visual เมื่อต้องสร้างแฟ้มใหม่ คลิกใหม่ในการแฟ้ม:เมนู การเลือกแฟ้มแมโครในการแฟ้มแท็บ ตั้งชื่อ และคลิกตกลง.
    2. วาง VB สคริปต์โค้ดต่อไปนี้ที่ด้านล่าง (ไม่มีการติดตั้งแฟ้ม DSM ว่างเปล่าใน c ++ Visual ขั้นตอนต่อไปนี้อธิบายถึงการติดตั้ง):
      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"						
    ถ้าคุณสร้างรหัส อีกครั้ง รายละเอียดเวอร์ชันนี้ในการรวมในการปฏิบัติการ และข้อมูลของรุ่นคือ incremented คุณสามารถทำให้เกิดรหัสบางอย่างในแมโคที่อธิบายไว้ก่อนหน้านี้เพื่อป้องกันไม่ให้หมายเลขเวอร์ชัน incrementing ถ้าข้อผิดพลาดผลิตสร้างขึ้น
ข้อมูลอ้างอิง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบวัตถุ c ++ Visual ดูหัวข้อต่อไปนี้ในไลบรารีของ MSDN:
ดูข้อมูลเพิ่มเติมในแมโครสคริปต์ของ VB หัวข้อต่อไปนี้ในไลบรารีของ MSDN:
ดูข้อมูลเพิ่มเติมในภาษาสคริปต์ของ VB หัวข้อต่อไปนี้ในไลบรารีของ MSDN:
ดูข้อมูลเพิ่มเติมในใบแจ้งยอดทรัพยากร VERSIONINFO c ++ Visual หัวข้อต่อไปนี้ในไลบรารีของ MSDN:

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 237870 - การตรวจสอบครั้งสุดท้าย: 12/05/2015 15:18:18 - ฉบับแก้ไข: 1.0

Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition

  • kbnosurvey kbarchive kbautomation kbdevstudio kbhowto kbide kbscript kbvcobj kbmt KB237870 KbMtth
คำติชม