当前位置:首页 » 编程语言 » c语言调用cdll

c语言调用cdll

发布时间: 2023-01-13 09:01:12

‘壹’ c语言如何调用DLL

//dll
#include<windows.h>

extern"C"//保持C语言文件

void_declspec(dllexport)tryProc()//定义函数
{
MessageBox(NULL,_T("a"),_T("a"),MB_OK);
}

-------------------------------------

//C

#include<windows.h>

intmain()
{
HMOUDLEdll=LoadLibrary(/*DLL文件名*/);
if(dll!=NULL)
{
FARPROCtry=GetProcAddress(dll,"tryProc");
if(try!=NULL)
{
tryProc();//假如函数有返回值,可以用try()得到返回值
/*_asmcalltryProc*/
}
}
return0;
}

‘贰’ C语言调用C++写的DLL

C++代码在开头和结尾扩上extern "C"{ }即可,其他的估计你应该是内行。

‘叁’ c语言怎么调用dll文件

由于c的sdk编程的时候调用的api也应该是从dll中导出来的,这样c应该也是能调用dll的,c语言调用dll文件内部函数的方法如下:
1:用c调用一个加载器LOADER<可能是个api函数>;
2:加载目标dll,比如xx.dll
3:找到需要调用的函数的地址P_FUNC
4:调用FUNC即可

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

根据我的猜测,有两种情况
1.如果voidGetNum(char*s);是把输入的字符储存在*s中的话:
#include<WINDOWS.H>
#include<WINBASE.H>
#include<stdio.h>
typedefvoid(*MYPROC)(char*);/*这里要与GetNum的返回值和参数对应*/
voidmain(){
HINSTANCELibHandle;
MYPROCProcAdd;
charch;
charsysbuf[]="GetNum";/*过程名*/
LibHandle=LoadLibrary("GetNum.dll");/*载入dll*/

ProcAdd=(MYPROC)GetProcAddress(
LibHandle,sysbuf);/*获取函数sysbuf的地址*/
ProcAdd(&ch);
printf("%c ",ch);
}

2.如果你的GetNum是
intGetNum(char*s)
{
inti=0,ans=0;
while(s[i]>='0'&&s[i]<='9')
{
ans=s[i]-'0'+ans*10;
}
returnans;
}

#include<WINDOWS.H>
#include<WINBASE.H>
#include<stdio.h>
typedefint(*MYPROC)(char*);/*改*/
voidmain(){
HINSTANCELibHandle;
MYPROCProcAdd;
chars[100];/*改*/
charsysbuf[]="GetNum";/*过程名*/
LibHandle=LoadLibrary("GetNum.dll");/*载入dll*/

ProcAdd=(MYPROC)GetProcAddress(
LibHandle,sysbuf);/*获取函数sysbuf的地址*/
scanf("%s",s);/*改*/
printf("%d ",ProcAdd(&s));/*这里调用并输出结果*/
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:585
制作脚本网站 发布:2025-10-20 08:17:34 浏览:881
python中的init方法 发布:2025-10-20 08:17:33 浏览:574
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:761
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:677
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1005
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:250
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:108
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:799
python股票数据获取 发布:2025-10-20 07:39:44 浏览:705