ฟังก์ชันFindResourceกำหนดตำแหน่งที่ตั้งของทรัพยากร ด้วยการระบุชนิดและชื่อในโมดูลที่ระบุ.
(HRSRC FindResource HMODULE hModule, / / จัดการโมดูลLPCTSTRlpName, / / ชี้ไปที่ชื่อของทรัพยากรLPCTSTRlpType / / พิมพ์ตัวชี้ไปยังทรัพยากร);
ค่า NULL ระบุหมายเลขอ้างอิงโมดูลที่เกี่ยวข้องกับไฟล์รูปภาพที่ระบบปฏิบัติการที่ใช้ในการสร้างกระบวนการปัจจุบัน.
| ค่า | ความหมาย |
|---|---|
| RT_ACCELERATOR | ตารางการเร่งความเร็ว |
| RT_ANICURSOR | เคอร์เซอร์เคลื่อนไหว |
| RT_ANIICON | ไอคอนภาพเคลื่อนไหว |
| RT_BITMAP | บิตแมปทรัพยากร |
| RT_CURSOR | ทรัพยากรของเคอร์เซอร์ขึ้นอยู่กับฮาร์ดแวร์ |
| RT_DIALOG | กล่องโต้ตอบ |
| RT_FONT | ทรัพยากรแบบอักษร |
| RT_FONTDIR | แบบอักษรไดเรกทอรีทรัพยากร |
| RT_GROUP_CURSOR | ทรัพยากรฮาร์ดแวร์อิสระเคอร์เซอร์ |
| RT_GROUP_ICON | ทรัพยากรฮาร์ดแวร์แบบไม่ขึ้นกับไอคอน |
| RT_HTML | เอกสาร HTML |
| RT_ICON | ทรัพยากรไอคอนขึ้นอยู่กับฮาร์ดแวร์ |
| RT_MENU | ทรัพยากรของเมนู |
| RT_MESSAGETABLE | รายการข้อความแบบตาราง |
| RT_RCDATA | ทรัพยากรที่โปรแกรมประยุกต์กำหนด (ข้อมูลดิบ) |
| RT_STRING | รายการตารางสตริ |
| RT_VERSION | รุ่นของทรัพยากร |
ถ้าฟังก์ชันสำเร็จ ค่าส่งกลับเป็นตัวจัดการกับทรัพยากรที่ระบุข้อมูลบล็อก เพื่อขอรับตัวจัดการทรัพยากร ผ่านหมายเลขอ้างอิงนี้ไปยังฟังก์ชันLoadResource.
ถ้าฟังก์ชันล้มเหลว ส่งคืนค่าเป็น NULL การขอเพิ่มเติมข้อมูลข้อผิดพลาด โทร GetLastError.
ถ้าคำสูงใบสั่งของพารามิเตอร์lpNameหรือlpTypeเป็นศูนย์ คำต่ำใบสั่งระบุตัวระบุจำนวนเต็มของชื่อหรือชนิดของทรัพยากรที่ระบุ มิฉะนั้น พารามิเตอร์เหล่านี้ได้นานพอยน์เตอร์ไปสิ้นสุดด้วย null สายอักขระ ถ้าอักขระแรกของสตริงที่เป็นเครื่องหมายปอนด์ (#), อักขระที่เหลือแสดงตัวเลขทศนิยมที่ระบุตัวระบุจำนวนเต็มของชื่อหรือชนิดของทรัพยากร ตัวอย่าง "# 258" สายอักขระการแทนตัวระบุจำนวนเต็ม 258.
แอปพลิเคชันควรลดจำนวนหน่วยความจำที่จำเป็นสำหรับทรัพยากร โดยอ้างอิงเหล่านั้นโดยการระบุจำนวนเต็มแทนตามชื่อ.
เมื่อเสร็จสิ้นการใช้ตารางการเร่งความเร็ว บิตแมป เคอร์เซอร์ ไอคอน หรือเมนู คุณสามารถปล่อยของหน่วยความจำที่เกี่ยวข้อง โดยการเรียกฟังก์ชันหนึ่งในตารางต่อไปนี้.
| ทรัพยากร | ฟังก์ชันของรุ่น |
|---|---|
| ตารางการเร่งความเร็ว | DestroyAcceleratorTable |
| บิตแมป | DeleteObject |
| เคอร์เซอร์ | DestroyCursor |
| ไอคอน | DestroyIcon |
| เมนู | DestroyMenu |
ระบบลบทรัพยากรเหล่านี้โดยอัตโนมัติเมื่อกระบวนการที่สร้างขึ้นดังกล่าวสิ้นสุดลง อย่างไรก็ตาม เรียกฟังก์ชันเหมาะสมช่วยประหยัดหน่วยความจำ และเป็นลดขนาดของชุดการทำงานของกระบวนการ.
โปรแกรมประยุกต์ที่สามารถใช้FindResourceในการค้นหาชนิดของทรัพยากรใด ๆ แต่ควรจะใช้ฟังก์ชันนี้เท่านั้นถ้าโปรแกรมประยุกต์ต้องเข้าถึงข้อมูลทรัพยากรไบนารีเมื่อทำการต่อมาเรียก ระบุว่า LoadLibraryและLockResource.
การใช้ทรัพยากร ทันที แอปพลิเคชันควรใช้ฟังก์ชันฟังก์ชันเฉพาะทรัพยากรต่อไปนี้เพื่อค้นหา และโหลดทรัพยากรในการเรียกเพียงหนึ่งครั้ง:
| ฟังก์ชัน | กระทำ |
|---|---|
| FormatMessage | โหลด และรูปแบบการป้อนข้อมูลลงในตารางข้อความ. |
| LoadAccelerators | โหลดตารางการเร่งความเร็ว. |
| LoadBitmap | โหลดบิตแมปทรัพยากร. |
| LoadCursor | โหลดทรัพยากรที่เคอร์เซอร์. |
| LoadIcon | โหลดทรัพยากรไอคอน. |
| LoadMenu | โหลดทรัพยากรที่เมนู. |
| LoadString | โหลดการป้อนข้อมูลลงในตารางสตริ. |
ตัวอย่าง แอปพลิเคชันสามารถใช้ฟังก์ชันLoadIconเพื่อโหลดไอคอนสำหรับการแสดงผลบนหน้าจอ อย่างไรก็ตาม แอพลิเคชันควรใช้FindResourceและLoadResourceถ้ามันจะโหลดไอคอนเพื่อคัดลอกข้อมูลไปยังโปรแกรมประยุกต์อื่น.
สายทรัพยากรจะถูกเก็บไว้ในส่วนของสายอักขระที่ 16 แต่ละส่วน สายอักขระในแต่ละส่วนจะถูกเก็บไว้เป็นลำดับของสายนับ(สิ้นสุดไม่เป็น null ด้วย) อักขระ Unicode LoadStringฟังก์ชันจะแยกสายทรัพยากรจากส่วนสอดคล้องกัน.
Windows CE: พารามิเตอร์hModuleไม่สามารถใช้ตัวจัดการค่า NULL.
พารามิเตอร์lpNameไม่สนับสนุน ID ทรัพยากรศูนย์ นั่นคือFindResource (h, 0, t)จะไม่ทำงานตามที่คาดไว้.
คุณไม่สามารถส่งค่า RT_ANICURSOR หรือ RT_ANIICON ในพารามิเตอร์lpType .
nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ต้องการเวอร์ชัน 1.0 หรือรุ่นใหม่กว่า
หัวข้อ:ประกาศใน winbase.h
ไลบรารีที่นำเข้า:ใช้ kernel32.lib
Unicode:นำมาใช้เป็น Unicode และ ANSI รุ่นบน Windows และ Windows NT.
ภาพรวมของทรัพยากรทรัพยากรฟังก์ชัน FindResourceEx, FormatMessage, LoadAccelerators, LoadBitmap, LoadCursor, LoadIcon, LoadMenu, LoadResource, LoadString, LockResource, SizeofResource