• 4.VS2010C++建立DLL工程


     

    相关资料:

    http://blog.csdn.net/jshayzf/article/details/23608705

    http://blog.csdn.net/huang_xw/article/details/7524359

     

    实际操作:

    1.文件->新建->项目->Win32->Win32项目->写入名字"DBEngine"->确定->下一步->选择"DLL"->完成。
    2.生成->生成解决方案->"DLLDBEngineDebug"下面就有出现.dll文件了。
    3.头文件->右击->添加->新建项->Visual C++->代码->头文件(.h)->写入名字"DataAccess.h"->添加。
    代码:
    #ifndef DataAccess_H_
    #define DataAccess_H_
    #ifdef DBEngine
    #define DBEngine extern "C" _declspec(dllimport)
    #else
    #define DBEngine extern "C" _declspec(dllexport)
    #endif
    DBEngine int Add(int plus1, int plus2);
    #endif

    4.源文件->右击->添加->新建项->Visual C++->代码->C++文件(.cpp)->写入名字"DataAccess.cpp"->添加。
    代码:
    #include "stdafx.h"
    #include "DataAccess.h"
    #include <iostream>
    using namespace std;
    int Add(int plus1, int plus2)
    {
    int add_result = plus1 + plus2;
    return add_result;
    }

    5.源文件->右击->添加->新建项->Visual C++->代码->模块定义文件(.def)->写入名字"DataAccess.def"->添加。
    代码:
    LIBRARY "DBEngine"
    EXPORTS
    Add @1

    6.VS2010自动定义好了DLL入口。
    7.生成->生成解决方案->"DLLDBEngineDebug"就出现新的.dll文件与.lib了。

    //***************************************Delphi调用DLL**************************************//
    1.新建一个Delphi工程。
    2.放入DLL。
    3.写入如下代码:

     1 unit Unit1;
     2 
     3 interface
     4 
     5 uses
     6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     7   Dialogs, StdCtrls, Buttons;
     8 
     9 type
    10   TForm1 = class(TForm)
    11     BitBtn1: TBitBtn;
    12     procedure BitBtn1Click(Sender: TObject);
    13   private
    14     { Private declarations }
    15   public
    16     { Public declarations }
    17   end;
    18 
    19 var
    20   Form1: TForm1;
    21 
    22 
    23 function Add(Aint: Integer; Aint2: Integer):Integer; cdecl; external 'DBEngine.dll';
    24 
    25 
    26 implementation
    27 
    28 {$R *.dfm}
    29 
    30 procedure TForm1.BitBtn1Click(Sender: TObject);
    31 var
    32   AddValue:Integer;
    33 begin               
    34   AddValue := Add(1, 2);
    35   Caption := IntToStr(AddValue);
    36 end;
    37 
    38 end.
    View Code

    4.F9运行就可以看到结果了。

    PS:声明中不加__stdcall,采用VC默认格式__cdecl,但在Delphi中要注明调用格式为cdecl。

     

  • 相关阅读:
    数组的学习(一)
    Servlet是线程安全吗?
    MySql用户管理:添加用户、授权、删除用户
    泛型(二)
    泛型(一)
    Spring MVC
    spring框架
    mybatis基础
    Hibernate 基础
    Java局部类
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/5982220.html
Copyright © 2020-2023  润新知