zoukankan      html  css  js  c++  java
  • DLL调用的两种方式(IDE:VC6.0,C++)

    原文:http://www.cnblogs.com/Pickuper/articles/2050409.html

    DLL调用有两种方式,一种是静态调用,另外一种是动态调用

    (一)静态调用

    静态调用是一种显式的调用方式,即在编程的时候便知道了被调用的DLL中的接口函数,在编译链接的时候将DLL与工程生成的exe相关联。以MyApp.dll为例,具体的操作步骤如下:

    (1)需要的文件有:MyApp.dll,MyApp.lib,MyApp.h

    (2)假设需要调用MyApp.dll的工程为MyTest,首先把MyApp.dll放到MyTest工程目录的Debug或者Release目录下,然后将MyApp.lib和MyApp.h放到MyTest工程目录的根目录下

    (3)用VC打开MyTest工程,选中工程,然后选择VC菜单下的Project->Settings

    (4)在弹出的对话框中选择Link选项卡,然后在Object/library modules输入框中输入MyApp.lib,点击OK

    (5)在工程的FileView下,将MyApp.h文件添加到Header Files目录下

    (6)最后在需要调用DLL中的函数的*.cpp文件中包含#include “MyApp.h”

    (二)动态调用

    动态调用是一种隐式的调用方式,即程序运行过程中装载DLL,然后获取指定函数名称的接口函数,然后再调用之。具体的代码示例如下:

    {

           HINSTANCE hDllInst = LoadLibrary("MyApp.dll");

           if(hDllInst)

           {

                  typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);

                  MYFUNC youFuntionNameAlias = NULL;         // youFuntionNameAlias 函数别名

                  youFuntionNameAlias = (MYFUNC)GetProcAddress(hDllInst,"youFuntionName");           // youFuntionName 在DLL中声明的函数名

                  if(youFuntionNameAlias)

                 {

                        youFuntionNameAlias(param1,param2);

                 }

                 FreeLibrary(hDllInst);

           }

    }

  • 相关阅读:
    web性能优化
    5、Git:使用码云(Gitee)
    4、Git:文件操作
    3、Git:基本理论 和 项目搭建
    2、Git:环境配置
    1、Git:版本控制 和 Git历史
    18、各种锁的理解(非公平锁和公平锁、可重入锁、自旋锁、死锁)
    17、原子引用(乐观锁)
    16、深入理解CAS(重点)
    15、彻底玩转单例模式
  • 原文地址:https://www.cnblogs.com/lizhigang/p/6893988.html
Copyright © 2011-2022 走看看