VC常用代码之动态加载DLL

本文介绍了一个简单的程序示例,该程序使用LoadLibrary和GetProcAddress函数来动态加载和调用DLL中的函数myPuts。通过这个例子,读者可以了解如何在运行时链接DLL中的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据MSDN

  1. //File:RUNTIME.C
  2. //AsimpleprogramthatusesLoadLibraryand
  3. //GetProcAddresstoaccessmyPutsfromMYPUTS.DLL.
  4. #include<stdio.h>
  5. #include<windows.h>
  6. typedefVOID(*MYPROC)(LPTSTR);
  7. VOIDmain(VOID)
  8. {
  9. HINSTANCEhinstLib;
  10. MYPROCProcAdd;
  11. BOOLfFreeResult,fRunTimeLinkSuccess=FALSE;
  12. //GetahandletotheDLLmodule.
  13. hinstLib=LoadLibrary("myputs");
  14. //Ifthehandleisvalid,trytogetthefunctionaddress.
  15. if(hinstLib!=NULL)
  16. {
  17. ProcAdd=(MYPROC)GetProcAddress(hinstLib,"myPuts");
  18. //Ifthefunctionaddressisvalid,callthefunction.
  19. if(fRunTimeLinkSuccess=(ProcAdd!=NULL))
  20. (ProcAdd)("messageviaDLLfunction/n");
  21. //FreetheDLLmodule.
  22. fFreeResult=FreeLibrary(hinstLib);
  23. }
  24. //IfunabletocalltheDLLfunction,useanalternative.
  25. if(!fRunTimeLinkSuccess)
  26. printf("messageviaalternativemethod/n");
  27. }

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值