c语言调用dll里的命令并输出
#include<WINDOWS.H>#include<WINBASE.H>typedefvoid(*MYPROC)(char*);voidmain(){HINSTANC...
#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的地址*/
}
我有一个dll文件叫GetNum.dll,里面有个命令GetNum,怎样输出这个命令的结果 展开
#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的地址*/
}
我有一个dll文件叫GetNum.dll,里面有个命令GetNum,怎样输出这个命令的结果 展开
3个回答
展开全部
根据我的猜测,有两种情况
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) ); /* 这里调用 并输出结果 */
}
展开全部
GetNum.dll只是一个链接库,,你只能调用接口函数。看来你还不懂怎么调用动态链接库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(*ProcAdd)("string");
函数指针的一个应用而已
函数指针的一个应用而已
更多追问追答
追问
都没有输出
追答
你知道 函数GetNum是干嘛用的?
为什么要有输出呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询