#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
提交
取消