zoukankan      html  css  js  c++  java
  • VC调用DLL

    VC调用DLL

     

    调用DLL有两种方法:静态调用和动态调用.

    (一).静态调用其步骤如下:

    1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下;

    2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下;

    3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目

    录下;

    4.打开你的目标工程选中工程,选择Visual C++的Project主菜单的Settings菜单;

    5.执行第4步后,VC将会弹出一个对话框,在对话框的多页显示控件中选择Link页。然

    后在Object/library modules输入框中输入:youApp.lib

    6.选择你的目标工程Head Files加入:youApp.h文件;

    7.最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include "youApp.h"

    注:youApp是你DLL的工程名。

    2.动态调用其程序如下:

    动态调用时只需做静态调用步骤1.

    {

    HINSTANCE hDllInst = LoadLibrary("youApp.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);

    }

    }

    显式(静态)调用:

    LIB + DLL + .H,注意.H中dllexport改为dllimport

    隐式(动态)调用:

    DLL + 函数原型声明,先LoadLibrary,再GetProcAddress(即找到DLL中函数的地址),不用后FreeLibrary

    这里有最甜蜜的幸福,最博大的付出,最深刻的背叛,最强烈的绝望,最勇敢的坚强,最有力的反击!站在是非之外,看红尘最美不过月华清明、百花围簇!备注:在这个道德沦丧的时代,如果你想背弃誓言,轻易转身,那就不用再回头,因为没有人站在原地等你!

     
    分类: MFC程序
  • 相关阅读:
    API接口安全设计方案(已实现)
    第8篇-dispatch_next()函数分派字节码
    第7篇-为Java方法创建栈帧
    第6篇-Java方法新栈帧的创建
    第5篇-调用Java方法后弹出栈帧及处理返回结果
    第4篇-JVM终于开始调用Java主类的main()方法啦
    第3篇-CallStub新栈帧的创建
    第2篇-JVM虚拟机这样来调用Java主类的main()方法
    第1篇-关于JVM运行时,开篇说的简单些
    SpringCloud和SpringCloudAlibaba超详细总结
  • 原文地址:https://www.cnblogs.com/lisuyun/p/3361219.html
Copyright © 2011-2022 走看看