vc++ 如何动态调用DLL
我想用VC++动态调用DLL。谁能帮我?就以动态调用user32.dll的MessageBoxA函数为例子...
我想用VC++动态调用DLL。
谁能帮我? 就以动态调用user32.dll的MessageBoxA函数为例子 展开
谁能帮我? 就以动态调用user32.dll的MessageBoxA函数为例子 展开
3个回答
展开全部
窗口调用会出错,不是界面程序~...只当是一个例子.
#include <stdio.h>
#include <windows.h>
#include <winuser.h>
typedef int(*lpFun)(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType); //定义函数指针类型
int main()
{
HINSTANCE hDll; //DLL句柄
lpFun testFun; //函数指针
hDll = LoadLibrary("user32.dll");//加载DLL,需要将DLL放到工程目录下.
if (hDll != NULL)
{
testFun = (lpFun)GetProcAddress(hDll, "MessageBoxA");
if (testFun != NULL)
{
testFun(NULL, "Hello world!",NULL, MB_OK);
}
else
{
printf("the calling is error");
}
FreeLibrary(hDll);
}
return 0;
}
#include <stdio.h>
#include <windows.h>
#include <winuser.h>
typedef int(*lpFun)(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType); //定义函数指针类型
int main()
{
HINSTANCE hDll; //DLL句柄
lpFun testFun; //函数指针
hDll = LoadLibrary("user32.dll");//加载DLL,需要将DLL放到工程目录下.
if (hDll != NULL)
{
testFun = (lpFun)GetProcAddress(hDll, "MessageBoxA");
if (testFun != NULL)
{
testFun(NULL, "Hello world!",NULL, MB_OK);
}
else
{
printf("the calling is error");
}
FreeLibrary(hDll);
}
return 0;
}
展开全部
HINSTANCE hModule=LoadLibrary("user32.dll");
MYPROC pfMessageBoxA=(MYPROC )GetProcAddress(hModule,"MessageBoxA");
(pfMessageBoxA)(hWnd,"Hook","",MB_OK);
MYPROC pfMessageBoxA=(MYPROC )GetProcAddress(hModule,"MessageBoxA");
(pfMessageBoxA)(hWnd,"Hook","",MB_OK);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、编写程序时,包含(#include "什么.h") dll文件作者提供 的 头文件(.h文件) 。程序里,便和普通函数调用一样,去调用它的函数。
2、程序编译时,链接 dll文件作者提供 的 (.lib文件) 库文件。当然,可以在源程序里把.lib 名字写上,编译时自动去链接。例如:#pragma comment (lib, "什么.lib")
3、执行时,要有 .dll 文件。放在当前文件夹或系统文件夹里。
2、程序编译时,链接 dll文件作者提供 的 (.lib文件) 库文件。当然,可以在源程序里把.lib 名字写上,编译时自动去链接。例如:#pragma comment (lib, "什么.lib")
3、执行时,要有 .dll 文件。放在当前文件夹或系统文件夹里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询