Temelde bir grup dosya (HTML, CSS, JS, PNG, vb.) Alan ve C++ üstbilgileri static const char*
olarak kodlanmış verileri içeren bir C++ web sunucusu projesi için kendi sistemimi hazırladım. O zaman verilere erişmem gereken üstbilgiler #include
. 'Kaynak' dosyalarını kodlayan uygulama bir yapım öncesi adımı olarak yürütülür. Kodlama uygulaması, kaynak başlıklarını oluşturmak için boost::filesystem
'u kullanıyordu, bu nedenle Windows/* nix'te çalışıyor.
Tipik kaynak dosyası aşağıdaki gibi görünebilir: Ben \x
gösterimi kullanılarak şifreleyen ikili içerik için
namespace resource
{
// Generated from mainPage.htm
static const char* mainPage_[] =
{
"<html>...</html>"
};
}
. Ayrıca, bir editörde okunabilmesi için verileri sıraya sardığınızdan emin oluyorum.
Bazı sorunlarım olsa da - MS derleyicisi, bir PITA olan 64Kb'den büyük olacak şekilde static const char*
'a izin vermiyor. Neyse ki, bundan daha büyük olan tek dosyalar, daha küçük parçalara kolayca ayırabildiğim JavaScript dosyalarıydı - büyük görüntüler sorun olsa da.
Kaynakların yürütülebilir dosyanıza gömülmesi gerekiyor mu? Değilse başka bir yol dosyaları depolamak için SQLite kullanıyor olabilir - bu hafif veritabanı ile çalışmaya başlamak ve çok fazla çaba olmaz. – Rob
Benzer: http://stackoverflow.com/questions/549031/how-do-you-include-images-as-resources-in-a-c-executable – Rob