como se o arquivo fosse mapeado na memoria, para quem entende desse jargao.Agora descrevendo as 3 funcoes envolvidas, geralmente voce vai chama-las uma seguida imediatamente pela outra, pois cada uma precisa do valor retornado pela anterior. FindResource recebe 3 parametros, o primeiro e NULL, o segundo e o nome do recurso conforme foi definido no arquivo de recurso, e o terceiro e RT_RCDATA. Essa funcao retorna uma estrutura do Windows chamada HRSRC. Nao importa o que e essa estrutura. Basta saber que voce deve recebe-la e em seguida passa-la como o segundo parametro para a funcao LoadResource. O primeiro parametro dela e NULL. Essa funcao retorna uma outra estrutura do Windows chamada HGLOBAL. Tambem nao interessa o que ela e. Basta recebe-la e passa-la como o unico parametro para a funcao LockResource. Essa funcao e a que finalmente retorna um ponteiro void, que aponta para o primeiro byte do "arquivo embutido" mapeado na memoria. A partir deste ponto, voce ja tem acesso aos dados binarios. Como o ponteiro retornado e do tipo void, obviamente voce precisa efetuar um cast (conversao de tipo) dele para o tipo apropriado. Por exemplo, se o arquivo continha texto em formato ASCII, voce pode dar um cast para um ponteiro de char e atribuir a um objeto string, assim tera disponivel a string completa de caracteres. Isso seria equivalente a carregar o arquivo e ler todos os caracteres dele usando fread ou fgetc.Um exemplo praticoConfira a seguir um exemplo completo deste processo, desde a definicao do arquivo de recurso. Neste exemplo, considere que existe um arquivo em disco chamado Teste.dat na pasta de trabalho do programa e que ele contem texto em codificacao ASCII. O texto do arquivo deve terminar com um caractere nulo (byte de valor 0), ja que o programa de exemplo converte o ponteiro para uma string e strings devem terminar com o caractere nulo.Arquivo de recurso (resource.rc)RecursoTeste RCDATA "Teste.dat"Arquivo-fonte C++ (main.cpp)#include <Windows.h>#include <string>#include <iostream>#include <cstdlib>using namespace std;int main(int argc, char* args[]){ HRSRC handle = FindResource(NULL, "RecursoTeste", RT_RCDATA); HGLOBAL resource = LoadResource(NULL, handle); void* data = LockResource(resource); string textoDoArquivo = (char*)data; cout << textoDoArquivo << endl; system("pause"); return 0;}Executando este programa voce deve obter como saida em uma janela de console (tipo o CMD, o prompt de comando) o texto do arquivo seguido por uma mensagem especifica ("Pressione qualquer tecla para continuar...") que aparece por causa da linha onde invocamos o comando "pause" atraves da funcao system.Lendo estruturas inteiras do arquivo binarioImportante lembrar que, no caso de voce ter salvo alguma estrutura do programa (struct) em um arquivo em disco atraves das funcoes tipicas do C++ (fwrite, por exemplo), e possivel converter o ponteiro void do recurso para o mesmo tipo da estrutura, para ter acesso os dados. Obviamente, se isso vai funcionar ou nao, depende muito do que sao os membros da estrutura. Se a estrutura armazena ponteiros, voce nao deve salva-la por inteiro em um arquivo usando a funcao fwrite, ja que isso fara com que os ponteiros sejam armazenados, e como ponteiros sao diferentes para cada execucao do programa, na hora