Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah cara saya membenamkan data fail teks ke dalam sumber aplikasi Windows dalam C?

Bagaimanakah cara saya membenamkan data fail teks ke dalam sumber aplikasi Windows dalam C?

DDD
DDDasal
2024-11-24 12:05:11592semak imbas

How do I embed text file data into a Windows application resource in C  ?

Membenamkan Data Fail Teks ke dalam Sumber Aplikasi Windows

Dalam aplikasi C Windows, anda mungkin menghadapi situasi di mana anda ingin membenamkan data daripada fail teks terus ke bahagian sumber boleh laku. Dengan berbuat demikian, data menjadi sebahagian daripada perduaan program, menghapuskan keperluan untuk memuatkan dan menghurai fail luaran.

Untuk mencapai matlamat ini, anda boleh menggunakan editor sumber Visual Studio atau mentakrifkan sumber secara manual dalam sumber fail skrip. Berikut ialah langkah-langkah yang terlibat dalam membenamkan fail teks sebagai sumber:

  1. Buat Fail Sumber:

    • Buat sumber baharu fail skrip (cth., resources.rc) dalam direktori projek anda.
    • Tambah entri kepada skrip sumber menggunakan sintaks berikut:

      NameID TypeID Filename

    Di mana:

    • NameID ialah integer 16-bit unik yang mengenal pasti sumber.
    • TypeID ialah integer 16-bit unik yang mengenal pasti jenis sumber. Anda boleh menentukan jenis ini dalam fail pengepala sumber projek anda (cth., resource.h) menggunakan makro.
    • Nama fail ialah laluan ke fail teks yang anda mahu benamkan.

    Untuk contoh, anda boleh memasukkan entri berikut:

    IDR_MYTEXTFILE TEXTFILE "data.txt"
  2. Kompilasi Fail Sumber:

    • Dalam Visual Studio, klik kanan pada fail skrip sumber dan pilih "Kompilasi Fail Sumber". Ini akan menjana fail sumber terkumpul (.res) yang mengandungi data binari fail teks anda.
  3. Memuatkan Sumber Terbenam:

    • Gunakan fungsi FindResource dan LoadResource untuk mendapatkan semula pemegang kepada yang dibenamkan sumber.
    • Kunci data sumber menggunakan fungsi LockResource.
    • Akses data binari fail teks menggunakan penuding yang dikembalikan.

Berikut ialah contoh coretan kod:

HMODULE handle = GetModuleHandle(NULL);
HRSRC rc = FindResource(handle, MAKEINTRESOURCE(IDR_MYTEXTFILE), MAKEINTRESOURCE(TEXTFILE));
HGLOBAL rcData = LoadResource(handle, rc);
DWORD size = SizeofResource(handle, rc);
const char *data = (const char *)LockResource(rcData);

Perhatikan bahawa kaedah ini tidak membenarkan pengubahsuaian langsung data terbenam dalam boleh laku. Jika perlu, anda boleh menggunakan fungsi BeginUpdateResource, UpdateResource dan EndUpdateResource untuk melakukan kemas kini.

Atas ialah kandungan terperinci Bagaimanakah cara saya membenamkan data fail teks ke dalam sumber aplikasi Windows dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn