c语言调用dll里的命令并输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言调用dll里的命令并输出相关的知识,希望对你有一定的参考价值。
#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,怎样输出这个命令的结果
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) ); /* 这里调用 并输出结果 */
参考技术A GetNum.dll只是一个链接库,,你只能调用接口函数。看来你还不懂怎么调用动态链接库 参考技术B (*ProcAdd)("string");
函数指针的一个应用而已追问
都没有输出
追答你知道 函数GetNum是干嘛用的?
为什么要有输出呢?
函数GetNum得到一个数字,我想输出它
追答typedef void (*MYPROC)(char*);
改成typedef int (*MYPROC)(char*);
int x=(*ProcAdd)(参数);
printf("%d",x);
我100%肯定,上述代码不是你自己写的
是的,改成c++版本要怎样改
追答C跟C++有区别吗?
易语言怎么调用C写的DLL
SetWindowHookEx是这个函数······
参考技术A C#编写后的代码是基于CLR公共语言运行库上的,是不同于C++输出的传统DLL,所以不能被易语言中调用,你所列的方法是适用于传统VC++输出的DLL,如API 参考技术B 太简单了...帅哥啊,还认识我不,怎么这种问题是你能问出来的呵呵. SetWindowsHookEx是Api呀,在Kernel32.dll导出,我给你找个例子. .DLL命令 API_SetWindowsHookEx, 整数型, "user32", "SetWindowsHookExA", 安装钩子过程 .参数 idHook, 整数型, , .参数 lpfn, 整数型, , .参数 hmod, 整数型, , .参数 dwThreadId, 整数型, , 复制到DLL命令就好了. 参考技术C 首先你要知道这个DLL的函数和参数 然后放到同一目录 在易语言里声明 就和调用易语言的DLL一样了以上是关于c语言调用dll里的命令并输出的主要内容,如果未能解决你的问题,请参考以下文章