zoukankan      html  css  js  c++  java
  • VC与易语言DLL互相调用方法

    VC与易语言DLL互相调用方法

    时间:2014-05-09 10:11来源:未知 作者:admin 点击: 4194 次
    在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在易语言中如何调用VC编写的DLL呢,首先用VC编写一个简单的DLL文件,代码如下: int WINAPI add(int x,int y) { return x+y; } 这是一个简单的两个数加法操作,返回两个数相加的结果,这里我生
     
    在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在易语言中如何调用VC编写的DLL呢,首先用VC编写一个简单的DLL文件,代码如下:

    int WINAPI add(int x,int y)
    {
    return x+y;
    }

    这是一个简单的两个数加法操作,返回两个数相加的结果,这里我生成的是MFC DLL,并且需要在def中导出add函数。

    下面用易语言来调用它,首先在易语言中需要插入一个DLL命令,代码如下:


    .版本 2
     
    .DLL命令 调用CDLL, 整数型, "cdll.dll", "add"
        .参数 x, 整数型
        .参数 y, 整数型

    并且保存工程文件与DLL文件在一起,否则可能会报找不到DLL的错误.下面在按钮中添加如下代码:
    .版本 2
     
    .子程序 _按钮1_被单击
     
    信息框 (调用CDLL (5, 5), 0, )

    这样我们传递了两个数后就可以返回结果了,如下图: 

    VC与易语言DLL互相调用方法

    上图的信息框显示返回的结果是10,那么这就是正确的了,易语言调用VC的DLL需要注意类型,并且DLL函数需要WINAPI或stdcall,否则也会报错。

    下面我们再来看一下VC如何调用易语言的DLL,还是先用易语言编写一个DLL文件,建立一个DLL动态链接库工程,新建一个子程序,代码如下:

    .版本 2
     
    .子程序 add, 整数型, 公开
    .参数 x, 整数型
    .参数 y, 整数型
     
    返回 (x + y)
     
     
    下面我们用VC来调用这个DLL并且返回结果,代码如下:
    HINSTANCE hMod = LoadLibrary("e.dll");
    typedef int(WINAPI *ADD)(int,int);
    ADD myadd = (ADD)GetProcAddress(hMod,"add");
    CString str;
    str.Format("%d",myadd(5,5));
    MessageBox(str); 本文内容来自 www.lvcode.com 
    FreeLibrary(hMod);

    调用后结果如下图:
    VC与易语言DLL互相调用方法

    这样就得到了正确的结果了,需要注意的是易语言子程序必须公开,公开也就是与VC中def文件导出是一样的道理。
     
  • 相关阅读:
    Flash 9/Flash CS 3 HTTP Post 请求Web Service by .net
    Custom Draw
    [转]NDIS开发[网络驱动开发]
    http header详解
    [MSDN]用 SQL Server 2005中的 CLR 集成
    JSF 页面之间传值
    [转]采用HttpModules来重写URLs(实践篇)
    [转]聚集索引和非聚集索引(sql server索引结构及其使用)
    [转]使用showModalDialog打开模态窗口添加数据后刷新原窗口
    ASP.Net中自定义Http处理及应用之HttpHandler篇
  • 原文地址:https://www.cnblogs.com/hyz5525/p/4977008.html
Copyright © 2011-2022 走看看