为了账号安全,请及时绑定邮箱和手机立即绑定

我有一个dll文件叫GetNum.dll,里面有个命令GetNum,怎样输出这个命令的结果?

我有一个dll文件叫GetNum.dll,里面有个命令GetNum,怎样输出这个命令的结果?

米脂 2023-03-18 14:10:28
#include <WINDOWS.H>  #include <WINBASE.H>typedef void (*MYPROC)(char*); void main(){HINSTANCE LibHandle;MYPROC ProcAdd; char sysbuf[] = "GetNum"; /*过程名*/LibHandle = LoadLibrary("GetNum.dll"); /*载入dll*/ ProcAdd = (MYPROC)GetProcAddress(  LibHandle, sysbuf); /*获取函数sysbuf的地址*/}
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

GetNum.dll只是一个链接库,,你只能调用接口函数。看来你还不懂怎么调用动态链接库

查看完整回答
反对 回复 2023-03-21
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

根据我的猜测,有两种情况1.如果 void GetNum(char* s);是把输入的字符储存在 *s中的话:#include <WINDOWS.H>    #include <WINBASE.H>#include <stdio.h>    typedef void (*MYPROC)(char*); /* 这里要与GetNum的返回值和参数 对应 */void main(){   HINSTANCE LibHandle;   MYPROC ProcAdd;    char ch;       char sysbuf[] = "GetNum";   /*过程名*/   LibHandle = LoadLibrary("GetNum.dll"); /*载入dll*/        ProcAdd = (MYPROC)GetProcAddress(      LibHandle, sysbuf);   /*获取函数sysbuf的地址*/   ProcAdd(&ch);       printf("%c\n",ch);}

2.如果你的GetNum是int GetNum(char* s){    int i=0,ans=0;    while(s[i]>='0'&&s[i]<='9')    {        ans=s[i]-'0'+ans*10;    }    return ans;} #include <WINDOWS.H>    #include <WINBASE.H>#include <stdio.h>    typedef int  (*MYPROC)(char*);           /*   改 */void main(){   HINSTANCE LibHandle;   MYPROC ProcAdd;    char s[100];                        /*   改 */   char sysbuf[] = "GetNum";   /*过程名*/   LibHandle = LoadLibrary("GetNum.dll"); /*载入dll*/        ProcAdd = (MYPROC)GetProcAddress(      LibHandle, sysbuf);   /*获取函数sysbuf的地址*/   scanf("%s",s);                    /*   改 */   printf("%d\n", ProcAdd(&s) );        /* 这里调用 并输出结果 */}


查看完整回答
反对 回复 2023-03-21
  • 2 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号