Bagikan melalui


Fungsi UpdateResourceA (winbase.h)

Menambahkan, menghapus, atau mengganti sumber daya dalam file portable executable (PE). Ada beberapa batasan pada pembaruan sumber daya dalam file yang berisi data Konfigurasi Sumber Daya (Konfigurasi RC): file netral bahasa (LN) dan file sumber daya khusus bahasa (.mui).

Sintaksis

BOOL UpdateResourceA(
  [in]           HANDLE hUpdate,
  [in]           LPCSTR lpType,
  [in]           LPCSTR lpName,
  [in]           WORD   wLanguage,
  [in, optional] LPVOID lpData,
  [in]           DWORD  cb
);

Parameter

[in] hUpdate

Jenis: HANDLE

Handel modul yang dikembalikan oleh fungsi BeginUpdateResource, merujuk file yang akan diperbarui.

[in] lpType

Jenis: LPCTSTR

Jenis sumber daya yang akan diperbarui. Atau, daripada pointer, parameter ini dapat MAKEINTRESOURCE(ID), di mana ID adalah nilai bilangan bulat yang mewakili jenis sumber daya yang telah ditentukan sebelumnya. Jika karakter pertama string adalah tanda pound (#), maka karakter yang tersisa mewakili angka desimal yang menentukan pengidentifikasi bilangan bulat dari jenis sumber daya. Misalnya, string "#258" mewakili pengidentifikasi 258.

Untuk daftar jenis sumber daya yang telah ditentukan sebelumnya, lihat Jenis Sumber Daya.

[in] lpName

Jenis: LPCTSTR

Nama sumber daya yang akan diperbarui. Atau, daripada pointer, parameter ini dapat MAKEINTRESOURCE(ID), di mana ID adalah ID sumber daya. Saat membuat sumber daya baru, jangan gunakan string yang dimulai dengan karakter '#' untuk parameter ini.

[in] wLanguage

Jenis: WORD

Pengidentifikasi bahasa sumber daya yang akan diperbarui. Untuk daftar pengidentifikasi bahasa utama dan pengidentifikasi sublanguage yang membentuk pengidentifikasi bahasa, lihat makro MAKELANGID.

[in, optional] lpData

Jenis: LPVOID

Data sumber daya yang akan dimasukkan ke dalam file yang ditunjukkan oleh hUpdate. Jika sumber daya adalah salah satu jenis yang telah ditentukan sebelumnya, data harus valid dan selaras dengan benar. Perhatikan bahwa ini adalah data biner mentah yang akan disimpan dalam file yang ditunjukkan oleh hUpdate, bukan data yang disediakan oleh LoadIcon, LoadString, atau fungsi beban khusus sumber daya lainnya. Semua data yang berisi string atau teks harus dalam format Unicode. lpData tidak boleh menunjuk ke data ANSI.

Jika lpData NULL dan cbData adalah 0, sumber daya yang ditentukan dihapus dari file yang ditunjukkan oleh hUpdate.

[in] cb

Jenis: DWORD

Ukuran, dalam byte, data sumber daya di lpData.

Mengembalikan nilai

Jenis: BOOL

Mengembalikan TRUE jika berhasil atau FALSE sebaliknya. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Komentar

Disarankan agar file sumber daya tidak dimuat sebelum fungsi ini dipanggil. Namun, jika file tersebut sudah dimuat, file tersebut tidak akan menyebabkan kesalahan dikembalikan.

Aplikasi dapat menggunakan UpdateResource berulang kali untuk membuat perubahan pada data sumber daya. Setiap panggilan ke UpdateResource berkontribusi pada daftar internal penambahan, penghapusan, dan penggantian tetapi tidak benar-benar menulis data ke file yang ditunjukkan oleh hUpdate. Aplikasi harus menggunakan fungsi EndUpdateResource untuk menulis akumulasi perubahan pada file.

Fungsi ini dapat memperbarui sumber daya dalam modul yang berisi kode dan sumber daya.

Sebelum Windows 7: Jika lpDatanull dan cbData nonzero, sumber daya yang ditentukan TIDAK dihapus dan pengecualian dilemparkan.

Dimulai dengan Windows Vista: Seperti yang disebutkan di atas, ada pembatasan pembaruan sumber daya dalam file yang berisi data Konfigurasi RC: file LN dan file .mui. Pembatasannya adalah sebagai berikut:

Perbuatan File LN File .mui
1. Tambahkan jenis baru yang tidak ada di file LN atau .mui. Tambahkan jenis dalam file LN dan perlakukan sebagai bahasa netral (tidak dapat dilokalkan) dan tambahkan jenis atau item baru dalam data Konfigurasi RC Satu-satunya penambahan yang diizinkan adalah jenis berikut: Versi file, data Konfigurasi RC, Manifes XML Rakitan Berdampingan.
2. Tambahkan item sumber daya baru ke jenis yang sudah ada. Menggunakan data Konfigurasi RC untuk memeriksa apakah jenis ada dalam file .mui yang terkait dengan file LN ini. Jika jenis tidak ada di file .mui, tambahkan item dan perlakukan item baru sebagai tidak dapat dilokalkan. Jika jenis ada dalam file .mui, maka penambahan tidak diperbolehkan. Hanya item dari jenis berikut yang dapat ditambahkan: Versi File, data Konfigurasi RC, Manifes XML Rakitan Berdampingan.
3. Perbarui item sumber daya. Menggunakan data Konfigurasi RC untuk memeriksa apakah jenis ada dalam file .mui yang terkait dengan file LN. Jika jenis tidak ada di file .mui, pembaruan item sumber daya ini diizinkan dalam file LN. Jika tidak, jika jenis ada dalam file .mui yang terkait dengan file LN ini, maka pembaruan ini tidak diizinkan. Satu-satunya pembaruan yang diizinkan adalah item dari jenis berikut: Versi file, data Konfigurasi RC, Manifes XML Rakitan Berdampingan.
4. Tambahkan jenis/item untuk bahasa baru. Dilarang. Dilarang.
5. Hapus tipe/item yang ada. Bekerja sama dengan kasus 3. Menggunakan data Konfigurasi RC untuk memeriksa apakah jenis ada dalam file .mui yang terkait dengan file LN. Jika tidak, maka penghapusan jenis/item dari file LN diizinkan. Jika tidak, jika jenis/item ada dalam file .mui yang terkait dengan file LN ini, maka penghapusan tidak diizinkan. Satu-satunya jenis yang diizinkan untuk dihapus adalah: Versi file, data Konfigurasi RC, Manifes XML Rakitan Berdampingan; juga, hanya item dari jenis ini yang dapat dihapus.
6. Tambahkan/hapus/perbarui jenis yang tidak disertakan dalam data Konfigurasi RC (seperti Versi, Manifes XML Rakitan Berdampingan, atau data Konfigurasi RC itu sendiri). Diperbolehkan. Diperbolehkan.
7. Pembaruan lain dari data yang tidak dapat dilokalkan, seperti TYPELIB, reginst, dan sebagainya. Perbarui jenis atau item dalam file LN, perlakukan sebagai tidak dapat dilokalkan, dan tambahkan jenis atau item baru dalam data Konfigurasi RC. Tidak berlaku.
8. Tambahkan data Konfigurasi RC. Dapat dilakukan tetapi integritas data Konfigurasi RC tidak diperiksa. Dapat dilakukan tetapi integritas data Konfigurasi RC tidak diperiksa.
 

Contoh

Misalnya, lihat Memperbarui Sumber Daya.

Nota

Header winbase.h mendefinisikan UpdateResource sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Platform Target Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

BeginUpdateResource

Konseptual

endUpdateResource

LoadIcon

LoadString

LockResource

MAKEINTRESOURCE

MAKELANGID

Sumber Daya Lain

Referensi

Sumber Daya

SizeofResource