Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh membenamkan fail teks ke dalam sumber boleh laku untuk aplikasi Windows menggunakan C?

Bagaimanakah saya boleh membenamkan fail teks ke dalam sumber boleh laku untuk aplikasi Windows menggunakan C?

DDD
DDDasal
2024-11-17 09:11:03547semak imbas

How can I embed text files into executable resources for Windows applications using C  ?

Membenamkan Teks ke dalam Sumber Boleh Laku untuk Aplikasi Windows

Membenamkan data dalam program C Windows, termasuk fail teks, boleh dicapai melalui yang ditetapkan pengguna sumber. Teknik ini melibatkan penciptaan fail sumber berasingan yang mengandungi kandungan perduaan fail teks, membolehkan ia dimuatkan dan diakses secara dinamik semasa masa jalan.

Penciptaan Fail Sumber

Untuk membenamkan fail teks, cipta fail sumber (.rc) berikutan ini garis panduan:

[resourceName id] [resourceType id] [filename]

Di mana:

  • id resourceName: Pengecam unik untuk sumber (cth., IDR_MYTEXTFILE).
  • ID ResourceType: Pengecam unik yang lebih besar daripada 255 menyatakan jenis sumber (mis., TEXTFILE).
  • nama fail: Laluan ke fail teks untuk dibenamkan.

Contohnya:

IDR_MYTEXTFILE TEXTFILE "mytextfile.txt"

Pemuatan Sumber

Sumber terbenam boleh dimuatkan dalam kod menggunakan fungsi seperti FindResource dan LoadResource. Contoh pelaksanaan mungkin kelihatan seperti ini:

void LoadFileInResource(int name, int type, DWORD& size, const char*& data)
{
    HMODULE handle = ::GetModuleHandle(NULL);
    HRSRC rc = ::FindResource(handle, MAKEINTRESOURCE(name), MAKEINTRESOURCE(type));
    HGLOBAL rcData = ::LoadResource(handle, rc);
    size = ::SizeofResource(handle, rc);
    data = static_cast<const char*>(::LockResource(rcData));
}

Di mana:

  • nama: ID nama sumber (mis., IDR_MYTEXTFILE).
  • jenis: Sumber ID taip (cth., TEXTFILE).
  • saiz: Saiz terbenam data.
  • data: Penunjuk kepada data terbenam.

Penggunaan

Data terbenam kemudiannya boleh diakses dan diproses dalam program, seperti yang digambarkan oleh coretan berikut:

// Usage example
int main()
{
    DWORD size = 0;
    const char* data = NULL;
    LoadFileInResource(IDR_MYTEXTFILE, TEXTFILE, size, data);
    // Access bytes in data - here's a simple example involving text output
    char* buffer = new char[size+1];
    ::memcpy(buffer, data, size);
    buffer[size] = 0; // NULL terminator
    ::printf("Contents of text file: %s\n", buffer); // Print as ASCII text
    delete[] buffer;
    return 0;
}

Dengan mengikuti langkah-langkah ini, anda boleh dengan mudah membenamkan fail teks atau data lain ke dalam aplikasi Windows asli anda sebagai sumber, memastikan akses dinamik dan memperkemas organisasi kod anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh membenamkan fail teks ke dalam sumber boleh laku untuk aplikasi Windows menggunakan 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