广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    C语言动态链接库DLL的调用

    来源:网络收集  点击:  时间:2024-05-15
    【导读】:
    我只会C,用的是“老得掉牙”的VC++6.0,想实现最简单的dll的调用。一通百度之后终有所悟。好结果好心情当分而享之!本着“简洁美”原则,传达下本篇摘要:.c-cl编译器-.obj-link链接器-.dll。在另一程序中调用该dll实现a+b工具/原料moreVC++6.0方法/步骤1/6分步阅读

    新建DLLTest文件夹,在该文件夹中新建source文件夹

    2/6

    在source文件夹中造add.c( 注意.cpp不行 )关门放代码:

    _declspec(dllexport)int add(int a,int b){return a + b;}

    保存

    3/6

    win+R+cmd请出总指挥“命令行”,输入(小心空格)

    cl /c E:\VCfile\DLLTestource\add.c /FoE:\VCfile\DLLTestource\add.obj开始挥舞编译器大棒。挥舞原则:

    /c:只编译

    E……add.c:C文件的老巢(替换成你的add.c路径)

    /Fo:造出个obj

    E……add.obj:obj放这儿(随机应变部分)

    看见没?.obj已经诞生了

    【如果找不到cl编译器,只需3步:一步,环境变量-系统变量-path中添加cl.exe路径,分好与前面分开(一般是:鬼晓得你把VC6安装在哪儿\VC6.0\Microsoft Visual Studio\VC98\Bin);二步, 新建 个名为INCLUDE的系统变量,值为:你的VC6安装位置\VC6.0\Microsoft Visual Studio\VC98\Include,三步:和二步类似, 新建 LIB变量,值为你的VC6安装位置\VC6.0\Microsoft Visual Studio\VC98\Lib】

    4/6

    继续输入(路径也要随机应变)

    link /DLL /out:E:\VCfile\DLLTestource\add.dll E:\VCfile\DLLTestource\add.obj

    开始挥舞链接器大棒,和cl类似。两大棒下去,眼睁睁看到add.dll出来(看命令行后面的文件夹中已经出现add.dll)。哈哈

    5/6

    dll的制造就告一段落,下面调用dll。

    新建源文件call_dll.c或.cpp放到DLLTest文件夹,同时add.dll也复制过来(看图),在call_dll.c中放入以下代码:

    #include stdio.h#include windows.h

    typedef int(* my_fun)(int a,int b);

    int main(void){HINSTANCE dllA;my_fun f1;

    dllA = LoadLibrary(add.dll);if(NULL==dllA)printf(无法加载dll!\n);f1 = (my_fun)GetProcAddress(dllA,add);if(NULL==f1)printf(找不到函数地址!\n);

    printf(调用结果:%d\n, f1(2,3));

    return 0;}

    6/6

    编译,连接运行出现个5!此刻是属于程序员的你的,加鸡腿!

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_763844.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 05:25:12  耗时:0.023
    0.0235s