第二种方法:主程陵段序启动一个线程去主动获得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.hResource 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) 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sharkly/archive/2006/04/22/673537.aspx
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)