DLL的创建和使用

 1 #ifndef MYDLL_H
 2 #define MYDLL_H
 3
 4 #ifdef DLL_IMPLEMENT_
 5 #define DLL_APL __declspec(dllexport)
 6 #else
 7 #define DLL_API __declspec(dllimport)
 8 #endif
 9
10 //导出函数接口
11 extern "C"
12 {
13     int DLL_API add(const int &a, const int &b);
14     int DLL_API sub(const int &a, const int &b);
15     int DLL_API mul(const int &a, const int &b);
16     int DLL_API div(const int &a, const int &b);
17 }
18
19
20 //导出类
21 class __declspec(dllexport) CPreson
22 {
23 private:
24     char szName[128];
25     int age;
26 public:
27     CPreson();
28     ~CPreson();
29     CPreson(char* lpName,int nAge);
30 public:
31     char *GetName();
32     int GetAge();
33 };
34
35 #endif
 1 // mydll.cpp : 定义 DLL 应用程序的导出函数。
 2 //
 3 #define DLL_IMPLEMENT_
 4 #include "stdafx.h"
 5 #include "mydll.h"
 6
 7 int add(const int &a, const int &b)
 8 {
 9     return a + b;
10 }
11
12 int sub(const int &a, const int &b)
13 {
14     return a - b;
15 }
16
17 int mul(const int &a, const int &b)
18 {
19     return a * b;
20 }
21
22 int div(const int &a, const int &b)
23 {
24     return a / b;
25 }
26
27
28 CPreson::CPreson()
29 {
30
31 }
32
33 CPreson::CPreson(char* lpName,int nAge)
34 {
35     this->age=nAge;
36     if (lpName)
37     {
38         int len = strlen(lpName);
39         if (len>127)
40             len=127;
41         memcpy(this->szName,lpName,len);
42         this->szName[len] = 0;
43     }
44 }
45
46 char * CPreson::GetName()
47 {
48     return szName;
49 }
50
51 int CPreson::GetAge()
52 {
53     return age;
54 }
55
56 CPreson::~CPreson()
57 {
58
59 }
 1    //测试dll   // TestMyDll.cpp : 定义控制台应用程序的入口点。
 2 //
 3
 4 #include "stdafx.h"
 5 #include "mydll.h"
 6 #include <iostream>
 7 using namespace std;
 8
 9 int _tmain(int argc, _TCHAR* argv[])
10 {
11     /*int a, b;
12     char c;*/
13     //while( cin >> a >> c >> b )
14     //{
15     //    switch( c )
16     //    {
17     //    case ‘+‘:
18     //        cout << add(a, b) << endl;
19     //        break;
20     //    case ‘-‘:
21     //        cout << sub(a, b) << endl;
22     //        break;
23     //    case ‘*‘:
24     //        cout << mul(a, b) << endl;
25     //        break;
26     //    default:
27     //        cout << ‘\"‘ << a << c << b << ‘\"‘ << "isn‘t a valid expression." << endl;
28     //    }
29     //}
30
31     CPreson person("zhang",23);
32     cout<<person.GetName()<<endl;
33     system("pause");
34     return 0;
35 }
时间: 2024-12-31 18:35:41

DLL的创建和使用的相关文章

Delphi中DLL的创建和使用【转】

Delphi中DLL的创建和使用     1.DLL简介:   2.调用DLL:   3.创建DLL:   4.两个技巧:   5.初始化:   6.例外处理.            1.DLL简介     DLL是Dynamic-Link   Libraries(动态链接库)的缩写,库里面是一些可执行的模块以及资源(如位图.图标等).可以认为DLL和EXE基本上是一回事,只是DLL不能直接执行,而必须由应用程序或者其他DLL调用.DLL为应用程序间的资源共享提供了方便,同时也是多语言混合编程的

C++ dll的创建和使用

在介绍Dll之前先了解下常见三种函数调用约定. 参考:https://www.cnblogs.com/yejianyong/p/7506465.html 我们使用的VS默认使用的函数调用约定是__cdel,而Windows API默认的调用约定是__stdcall.我们在使用一个dll的接口时,一定要确保你使用接口时的调用约定和接口定义时的调用约定一致.因为不同的调用约定,函数的栈内存释放的方式不同. 然后我们再了解下extern C的作用,参考https://www.cnblogs.com/c

C#中调用c++的dll具体创建与调用步骤,亲测有效~

使用的工具是VS2010哦~其他工具暂时还没试过 我新建的工程名是my21dll,所以会生成2个同名文件.接下来需要改动的只有画横线的部分 下面是my21dll.h里面的... 下面的1是自动生成的不用动,或者也可以不要,因为只是一个宏而已下面可以做相应修改. 下面的2是自动生成的类,我没用就注释掉了 下面的3是自动生成的一个测试函数,原来函数最前面是extern,记住精髓是要改成EXTERN_C 下面的4是我自己写的一个测试函数,用来求和 下面是my21dll.cpp里面的 号3对应上面号3的

DLL的创建与使用

一.动态链接库(DLL) 动态链接库提供了一种方法,使进程可以调用不属于其执行代码的函数.函数的可执行代码位于一个.dll文件中,该文件包含一个或多个已被编译.链接并使用它们的进程分开存储的函数. 优点: 1.扩展了 应用程序的特性 2.可以使用多种编程语言来编写 3.简化项目的管理 二.依赖项 当某个程序或DLL使用其他DLL或DLL函数时,就会创建依赖项,因此程序就不会再独立了,依赖项如果被破坏,该程序可能出现问题. 三.入口点 在创建DLL时,可以有选择地指定入口点的函数.当进程或线程将它

VS中 DLL的创建及函数导出(参考MSDN)

新建一个DLL工程: 新建 - 项目 - vc++ - win32 - win32控制台应用程序,工程名假设取为 MathFuncsDll 向导中选择DLL,取消预编译头 完成. 此时会有dllmain.cpp, MathFuncsDll.cpp 两个cpp文件及生成的 stdafx.h, targetver.h stdafx.cpp, 后面这三个文件其实是没用的,可以删掉,然后把dllmain.cpp 中的#include "stdafx.h"改成#include <windo

DLL 的创建及调用,效果及源码

源码地址:http://files.cnblogs.com/tiankaileo/DLL.rar

DLL中创建对话框之加载资源【备忘一】

HINSTANCE hinst = GetModuleHandle(0);        HRSRC hr = ::FindResource(hinst, MAKEINTRESOURCE(IDD_MEMDIALOG), RT_DIALOG);        LoadResource(hinst, hr);        m_hWnd=CreateDialog(hinst, MAKEINTRESOURCE(IDD_MEMDIALOG), 0, DlgProc);

VS2010 C++创建DLL步骤

VS2010中 C++创建DLL图解 一.DLL的创建 创建项目: Win32->Win32项目,名称:MyDLL 选择DLL (D) ->完成. 1.新建头文件testdll.htestdll.h代码如下:#ifndef TestDll_H_#define TestDll_H_#ifdef MYLIBDLL#define MYLIBDLL extern "C" _declspec(dllimport) #else#define MYLIBDLL extern "

delphi 创建DLL文件 及其调用和注意事项

首先创建一个DLL文件,项目自带的代码为: library ProjectPnr; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or fu