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