zoukankan      html  css  js  c++  java
  • 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。

     

  • 相关阅读:
    Cocos2d-x 3.2编译生成Android程序出错Error running command, return code: 2的解决方法
    利用Theme自定义Activity进入退出动画
    Activity的四种launchMode
    android中设置控件获得焦点
    android 反编译 for mac
    android中libs目录下armeabi和armeabi-v7a的区别
    解决Sublime Text 3中文显示乱码(tab中文方块)问题,sublime tab乱码
    mysql教程
    Failed to load c++ bson extension, using pure JS version
    mongodb导出数据
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/5982220.html
Copyright © 2011-2022 走看看