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