关键字: dll 资源 字符串资源
下面建立一个简单的dll为例,dll实现建立一个文件,并将读到的String Table资源写到此文件中。
步骤如下:
1)在VC菜单中File->New新建一个命名为dlltest的Win32 Dynamic-Link Library工程,下一步选择
A simple DLL project。
2)在dlltest.cpp文件中添加代码:
#include "stdafx.h"
#include "stdio.h"
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
switch(fwdreason)
{
case DLL_PROCESS_ATTACH:
int i;
FILE *fw;
fw = fopen(filename, "w");
char str[200];
LoadString(hinstDLL,1,filename,MAX_PATH);
fprintf(fw,"%s/n", filename);
break;
default:
break;
}
return(TRUE);
}
3)在VC菜单中Insert->Resource添加一个String Table,其ID为IDS_STRING1,Caption为abc,点击保
存,文件名为Script1.rc。
4)在Header Files中添加进resource.h; Resource Files中添加进Script1.rc。
5)在dlltest.cpp中添加头文件resource.h。
6)编译完成文件。
一个最简单的调用例子:
#include <stdio.h>
#include <windows.h>
int main(int argc, char *argv[])
{
HINSTANCE hDll;
hDll = LoadLibrary("dlltest.dll"); //加上路径
return 0
}
可看到在修改IDS_STRING1的caption时,可读到不同的字符串。
类似地,可读取其他资源:
函数为:
HBITMAP LoadBitmap(HINSTANCE hInstance,LPCTSTR lpBitmapName)
HICON LoadIcon(HINSTANCE hInstance,LPCTSTR lpIconName)
HMENU LoadMenu(HINSTANCE hInstance,LPCTSTR lpMenuName)
int LoadString(HINSTANCE hInstance,UINT uID,LPTSTR lpBuffer,int BufferMax)
这篇博客介绍如何从DLL文件中读取资源,特别是字符串资源。通过创建一个简单的DLL工程并添加String Table,然后在DllMain函数中使用LoadString来读取资源并写入文件,展示了DLL资源读取的过程。同时提到了LoadBitmap、LoadIcon和LoadMenu等其他资源加载函数。
1万+

被折叠的 条评论
为什么被折叠?



