猿问

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

#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的地址*/

}

米脂
浏览 74回答 2
2回答

陪伴而非守候

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

料青山看我应如是

根据我的猜测,有两种情况1.如果&nbsp;void&nbsp;GetNum(char*&nbsp;s);是把输入的字符储存在&nbsp;*s中的话:#include&nbsp;<WINDOWS.H>&nbsp;&nbsp;&nbsp;&nbsp;#include&nbsp;<WINBASE.H>#include&nbsp;<stdio.h>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;void&nbsp;(*MYPROC)(char*);&nbsp;/*&nbsp;这里要与GetNum的返回值和参数&nbsp;对应&nbsp;*/void&nbsp;main(){&nbsp;&nbsp;&nbsp;HINSTANCE&nbsp;LibHandle;&nbsp;&nbsp;&nbsp;MYPROC&nbsp;ProcAdd;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;ch;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;sysbuf[]&nbsp;=&nbsp;"GetNum";&nbsp;&nbsp;&nbsp;/*过程名*/&nbsp;&nbsp;&nbsp;LibHandle&nbsp;=&nbsp;LoadLibrary("GetNum.dll");&nbsp;/*载入dll*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcAdd&nbsp;=&nbsp;(MYPROC)GetProcAddress(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LibHandle,&nbsp;sysbuf);&nbsp;&nbsp;&nbsp;/*获取函数sysbuf的地址*/&nbsp;&nbsp;&nbsp;ProcAdd(&ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%c\n",ch);}2.如果你的GetNum是int&nbsp;GetNum(char*&nbsp;s){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0,ans=0;&nbsp;&nbsp;&nbsp;&nbsp;while(s[i]>='0'&&s[i]<='9')&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans=s[i]-'0'+ans*10;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ans;}&nbsp;#include&nbsp;<WINDOWS.H>&nbsp;&nbsp;&nbsp;&nbsp;#include&nbsp;<WINBASE.H>#include&nbsp;<stdio.h>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;int&nbsp;&nbsp;(*MYPROC)(char*);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;&nbsp;改&nbsp;*/void&nbsp;main(){&nbsp;&nbsp;&nbsp;HINSTANCE&nbsp;LibHandle;&nbsp;&nbsp;&nbsp;MYPROC&nbsp;ProcAdd;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;s[100];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;&nbsp;改&nbsp;*/&nbsp;&nbsp;&nbsp;char&nbsp;sysbuf[]&nbsp;=&nbsp;"GetNum";&nbsp;&nbsp;&nbsp;/*过程名*/&nbsp;&nbsp;&nbsp;LibHandle&nbsp;=&nbsp;LoadLibrary("GetNum.dll");&nbsp;/*载入dll*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcAdd&nbsp;=&nbsp;(MYPROC)GetProcAddress(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LibHandle,&nbsp;sysbuf);&nbsp;&nbsp;&nbsp;/*获取函数sysbuf的地址*/&nbsp;&nbsp;&nbsp;scanf("%s",s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;&nbsp;改&nbsp;*/&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;ProcAdd(&s)&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;这里调用&nbsp;并输出结果&nbsp;*/}
随时随地看视频慕课网APP
我要回答