已知 C:\\msg.dll 中有一个公开函数 int MsgBox(char msg[],char title[])
请问用C++如何调用它。。
不要给我复制一大堆没有用的东西,我不需要只要给我例子就行了。
C++调用DLL函数问题
答案:4 悬赏:60 手机版
解决时间 2021-02-18 10:21
- 提问者网友:心牵心
- 2021-02-18 00:33
最佳答案
- 五星知识达人网友:狂恋
- 2021-02-18 01:42
HINSTANCE hDllInst = LoadLibrary( "c:\\msg.dll");
if(hDllInst)
{
typedef int (WINAPI *MSGBOX)(char *,char *);
MSGBOX MsgBox = NULL;
MsgBox = (MSGBOX)GetProcAddress(hDllInst, "MsgBox");
if(MsgBox)
{
//这里可以做你想做的事了
}
FreeLibrary(hDllInst);
}
如果想什么地方都能调用MsgBox,那么可以把函数指针定义成全局变量
if(hDllInst)
{
typedef int (WINAPI *MSGBOX)(char *,char *);
MSGBOX MsgBox = NULL;
MsgBox = (MSGBOX)GetProcAddress(hDllInst, "MsgBox");
if(MsgBox)
{
//这里可以做你想做的事了
}
FreeLibrary(hDllInst);
}
如果想什么地方都能调用MsgBox,那么可以把函数指针定义成全局变量
全部回答
- 1楼网友:長槍戰八方
- 2021-02-18 03:31
你调用和声明的timeadd都只有三个参数,定义中有六个参数!
从你的程序看应该修改如下,
定义:void timeadd(int& days,int& hours,int& minutes,int days,int hours,int minutes);
调用:timeadd(days,hours,minutes,days,hours,minutes);
而且函数调用后,修改的只是函数实现中的xyz,对main()中定义的xyz刚没有影响
- 2楼网友:duile
- 2021-02-18 03:25
HINSTANCE hDllInst = LoadLibrary( "c:\\msg.dll");
if(hDllInst)
{
typedef DWORd (WINAPI *MYFUNC)(DWORD,DWORD);
MYFUNC youFuntionNameAlias = NULL; // youFuntionNameAlias 函数别名
youFuntionNameAlias = (MYFUNC)GetProcAddress
(hDllInst, "MsgBox");
if(youFuntionNameAlias)
{
......
}
FreeLibrary(hDllInst);
}
- 3楼网友:梦中风几里
- 2021-02-18 01:49
1 调用函数的文件
...
#pragma comment(lib, "msg.lib");
...
extern int MsgBox(char *,char *);
...
2 vc6.0中设置
project->setting->link object/libarary moudles 填上msg.lib
tools->option->directories 中指定msg.lib的位置
然后再设置一下 环境变量,指定c:\msg.dll
这样就可以了。祝你顺利!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯