#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贡献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) ); /* 这里调用 并输出结果 */} |
添加回答
举报
0/150
提交
取消
