永发信息网

C++调用DLL函数问题

答案:4  悬赏:60  手机版
解决时间 2021-02-18 10:21
  • 提问者网友:心牵心
  • 2021-02-18 00:33
已知 C:\\msg.dll 中有一个公开函数 int MsgBox(char msg[],char title[])
请问用C++如何调用它。。
不要给我复制一大堆没有用的东西,我不需要只要给我例子就行了。
最佳答案
  • 五星知识达人网友:狂恋
  • 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,那么可以把函数指针定义成全局变量
全部回答
  • 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 这样就可以了。祝你顺利!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯