ตัวอย่างต่อไปนี้ในการคัดลอกทรัพยากรกล่องโต้ตอบจากหนึ่งแฟ้มปฏิบัติ มือEXE อื่น ฝ่าเท้าEXE โดยทำตามขั้นตอนเหล่านี้:
รหัสต่อไปนี้ใช้ขั้นตอนต่อไป.
HRSRC hResLoad / / จัดการเพื่อโหลดทรัพยากรจับ hExe / / จัดการกับที่มีอยู่ไฟล์ EXE HRSRC hRes / / จัดการ/ptr เมื่อต้องการข้อมูลทรัพยากร ใน hExe จัดการ hUpdateRes / / ปรับปรุงทรัพยากรจุด char * lpResLock / / ชี้ไปยังทรัพยากรข้อมูล BOOL ผลลัพธ์
/ / โหลดไฟล์ EXE ที่ประกอบด้วยกล่องโต้ตอบที่คุณต้องการคัดลอก
hExe = LoadLibrary("hand.exe")
ถ้า (hExe == NULL) { ErrorHandler ("ไม่สามารถโหลด exe ได้");
} / / ทรัพยากรในกล่องโต้ตอบการค้นหาแฟ้ม EXE
hRes = FindResource (hExe, "AboutBox", RT_DIALOG);
ถ้า (hRes == NULL) { ErrorHandler ("อาจไม่พบกล่องโต้ตอบได้");
} / / โหลดกล่องโต้ตอบลงในหน่วยความจำที่ส่วนกลาง
hResLoad = LoadResource (hExe, hRes);
ถ้า (hResLoad == NULL) { ErrorHandler ("ไม่สามารถโหลดกล่องโต้ตอบได้");
} / / ล็อกกล่องโต้ตอบลงในหน่วยความจำที่ส่วนกลาง
lpResLock = LockResource(hRes)
ถ้า (lpResLock == NULL) {ErrorHandler ("อาจไม่ล็อกบ็อกซ์);
} / / เปิดแฟ้มที่คุณต้องการเพิ่มทรัพยากรกล่องโต้ตอบ
hUpdateRes = BeginUpdateResource ("foot.exe", FALSE);
ถ้า (hUpdateRes == NULL) { ErrorHandler ("ไม่สามารถเปิดแฟ้มสำหรับการบันทึกได้");
} / / ทรัพยากรกล่องโต้ตอบเพิ่มลงในรายการโปรแกรมปรับปรุง
ผล = UpdateResource (hUpdateRes, / / ปรับปรุงทรัพยากรจัดการ RT_DIALOG, / / การเปลี่ยนแปลงทรัพยากรของกล่องโต้ตอบ "AboutBox", / / กล่องโต้ตอบชื่อ MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL), / / เป็นกลางภาษา
lpResLock, / / ptr การทรัพยากรข้อมูล SizeofResource (hExe, hRes)); / / ขนาดของทรัพยากรข้อมูล
ถ้า (ผลลัพธ์== FALSE) { ErrorHandler ("ไม่สามารถเพิ่มทรัพยากรได้");
} / / เขียนเปลี่ยนแปลงไปเท้าEXE แล้ว ปิด
if (!EndUpdateResource (hUpdateRes, FALSE)) { ErrorHandler ("ไม่สามารถเขียนการเปลี่ยนแปลงแฟ้มได้");
} / / Clean up
if (!FreeLibrary(hExe)) { ErrorHandler ("อาจไม่ฟรีปฏิบัติได้");
}