关于bcb dll 使用的一个错误
我准备把一张小的bmp图片放在dll里面,使用下面2种方法:
在dll 里动态建立 Timage *Image1= new Timage(Image1);
Image1->Picture->LoadFromFile("c:\\test.bmp") ;
建立一个函数
extern "C" __declspec(dllexport) __stdcall void Get_image(TImage *buffer)
{
buffer->Picture->Bitmap->Assign(Image1->Picture->Bitmap) ;
}
这样在dll调用是正常的,但test.bmp是实时加载,这个图片必须随程序打包,我希望把这个图片包在dll里,于是
在dll 里面建立form,放一个 Image1 控件,在属性里面加载这个图片,编译正常,图片也确实包含进dll里面,
但调用Get_image函数,就出错。
请高手指点。
[解决办法]
第一步,建立 DLL 工程:new一个DLL Wizard
第二步,创建一个RC文件,内容如下:
Bmp1 BITMAP "d:\\ccrun\\1.bmp"
Bmp2 BITMAP "d:\\ccrun\\2.bmp"
Bmp3 BITMAP "d:\\ccrun\\3.bmp"
当然,你需要将相应的bmp文件路径修改成你的文件名
第三步,将这个.rc文件加入到DLL工程中,无需导出什么函数,编译,假设生成Project1.dll
第四步,创建一个应用程序,在窗体上放置两个TImage和两个TButton,然后在默认单元的.h文件中添加:
private: // User declarations HMODULE m_hLib;