Помогите разобраться с файлом ресурсов
Создал файл ресурсов, 1.res, в котором под записью 2 имеется текстовый файл.
Далее пробую использовать его в приведенном ниже коде при нажатии кнопки BitBtn1, однако функция возвращает NULL. В чем я ошибся, и как можно исправить?
Вот текст исходника:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma resource "1.res"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
void *Resurs;
AnsiString *Text;
Resurs=FindResource(HInstance,"2",RT_RCDATA);
Resurs=LoadResource(HInstance,Resurs);
}
//---------------------------------------------------------------------------
Народ!
Создал файл ресурсов, 1.res, в котором под записью 2 имеется текстовый файл.
Далее пробую использовать его в приведенном ниже коде при нажатии кнопки BitBtn1, однако функция возвращает NULL. В чем я ошибся, и как можно исправить?
Вот текст исходника:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma resource "1.res"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
void *Resurs;
AnsiString *Text;
Resurs=FindResource(HInstance,"2",RT_RCDATA);
Resurs=LoadResource(HInstance,Resurs);
}
//---------------------------------------------------------------------------
Не пробовал RT_STRING?
Народ!
Создал файл ресурсов, 1.res, в котором под записью 2 имеется текстовый файл.
Далее пробую использовать его в приведенном ниже коде при нажатии кнопки BitBtn1, однако функция возвращает NULL. В чем я ошибся, и как можно исправить?
Вот текст исходника:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma resource "1.res"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
void *Resurs;
AnsiString *Text;
Resurs=FindResource(HInstance,"2",RT_RCDATA);
Resurs=LoadResource(HInstance,Resurs);
}
//---------------------------------------------------------------------------
Если принять, что файл ресурсов откмпилирован и и включен в проект правильно (в главном файле USERES("1.res")) то можно так:
или так:
Resurs=FindResource(HInstance,MAKEINTRESOURCE(2),RT_RCDATA);
HGLOBAL hRes=LoadResource(HInstance,Resurs);
Если принять, что файл ресурсов откмпилирован и и включен в проект правильно (в главном файле USERES("1.res")) то можно так:
или так:
Resurs=FindResource(HInstance,MAKEINTRESOURCE(2),RT_RCDATA);
HGLOBAL hRes=LoadResource(HInstance,Resurs);
Спасибо, буду пробовать.
Спасибо, буду пробовать.
Спасибо, kot_. Действительно помогло. Теперь возник другой вопрос. Делаю разыменование типов для преобразования полученного в указателе значения в переменную типа String. В результате в переменной - полная хрень, а не то, что было раньше. Подскажите, как правильно сделать разыменование типов.
Спасибо, kot_. Действительно помогло. Теперь возник другой вопрос. Делаю разыменование типов для преобразования полученного в указателе значения в переменную типа String. В результате в переменной - полная хрень, а не то, что было раньше. Подскажите, как правильно сделать разыменование типов.
В переменную типа String достаточно сложно таки загрузить файл - тебе так не кажется? :)
Есть два варианта - загрузить его в TStringList - используя свойство загрузить из потока или сохранить на диск и загрузить оттуда.
В переменную типа String достаточно сложно таки загрузить файл - тебе так не кажется? :)
Есть два варианта - загрузить его в TStringList - используя свойство загрузить из потока или сохранить на диск и загрузить оттуда.
Спасибо. Буду копать дальше.
Спасибо. Буду копать дальше.
Используй TResourceStream, если конечно это не принципиально, а затем делай StringList->LoadFromStream(...), все отработает нормально. Таким же образом можно грузить содержимое файла в мемо или ричэдит.