永发信息网

c语言调用dll里的命令并输出

答案:3  悬赏:60  手机版
解决时间 2021-03-28 02:07
  • 提问者网友:骨子里的高雅
  • 2021-03-27 20:58
c语言调用dll里的命令并输出
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-03-27 21:29
根据我的猜测,有两种情况
1.如果 void GetNum(char* s);是把输入的字符储存在 *s中的话:
#include     
#include 
#include     
typedef void (*MYPROC)(char*); 
void main(){
   HINSTANCE LibHandle;
   MYPROC ProcAdd; 
   char ch;    
   char sysbuf[] = "GetNum";   
   LibHandle = LoadLibrary("GetNum.dll");  
   
   ProcAdd = (MYPROC)GetProcAddress(   
   LibHandle, sysbuf);   
   ProcAdd(&ch);    
   printf("%c
",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     
#include 
#include     
typedef int  (*MYPROC)(char*);           
void main(){
   HINSTANCE LibHandle;
   MYPROC ProcAdd; 
   char s[100];                        
   char sysbuf[] = "GetNum";   
   LibHandle = LoadLibrary("GetNum.dll");  
   
   ProcAdd = (MYPROC)GetProcAddress(   
   LibHandle, sysbuf);   
   scanf("%s",s);                    
   printf("%d
", ProcAdd(&s) );        
}
全部回答
  • 1楼网友:胯下狙击手
  • 2021-03-27 23:06
(*ProcAdd)("string");
函数指针的一个应用而已追问都没有输出追答你知道 函数GetNum是干嘛用的?
为什么要有输出呢?追问函数GetNum得到一个数字,我想输出它追答typedef void (*MYPROC)(char*);
改成typedef int (*MYPROC)(char*);
int x=(*ProcAdd)(参数);
printf("%d",x);
我100%肯定,上述代码不是你自己写的追问是的,改成c++版本要怎样改追答C跟C++有区别吗?
  • 2楼网友:七十二街
  • 2021-03-27 21:45
GetNum.dll只是一个链接库,,你只能调用接口函数。看来你还不懂怎么调用动态链接库
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯