C/C++ 做库文件和使用库

来源:互联网 发布:浙江儿童dna数据库 编辑:程序博客网 时间:2024/06/11 21:20

C++ 做动态链接库

一、建立工程

1、建立Win32控制台应用程序


2、选择动态链接库工程 DLL

 

3.工程建立

 


4.这个时候,你会发现项目中出现了一个CreatDLL.cpp的文件,该文件的第一条语句,是这样的:#include "stdafx.h"Stdafx.hvisual studio的预编译头文件,主要是为了加快编译的速度。为了让代码有更好的跨平台编译能力,我建议去除该选项。Stdafx.h预编译选项的去除是这样的,依次点击:CreatDLL(即,当前项目)-->属性-->c/c++-->预编译头如下图所示:

 


 

二、添加自定义文件

//MyFunction.h#ifndef _MYFUNCTION_H  #define _MYFUNCTION_H  class MyFunction  {  public:  MyFunction();  ~MyFunction();  int Sum(int a, int b); public:int Id;};  #endif  //MyFunction.cpp #include "MyFunction.h"  int MyFunction::Sum(int a, int b)  {  int val = a+b;  return val;  }  MyFunction::MyFunction()  { }  MyFunction::~MyFunction()  { } 

 

三、配置,生成DLLLIB

1.DLL

 

编译生成CreatDLL.dll

 

2.LIB

 

编译生成CreatDLL.lib

 

 C/C++ 使用动态链接库

1、首先,建立一个名为Add_DLL_Test的工程


2、将CreatDLL.dllCreatDLL.libMyFunction.h放在工程路径的文件中。

 


3、配置。

(1)项目-->属性-->链接器-->输入,添加CreatDLL.lib链接器-->常规-附加目录-文件夹

 


 


(2)项目-->属性-->C++-->附加包含目录--将之前的3thdParty

 


4、编写自己的测试CPP文件 ,加入#include MyFunction.h

// Add_DLL_Test.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include "MyFunction.h"  #include "iostream"  using namespace std;  int _tmain(int argc, _TCHAR* argv[]){MyFunction dt;  int res = dt.Sum(1, 2);  cout<<"res: "<<res<<endl;   dt.Id =1024;cout<<"value = "<<dt.Id<<endl;system("pause");  return 0; return 0;}

 

5.编译测试结果

 


 

做动态链接库、C/C++ 使用动态链接库

C++时相同;唯一差异是,为方便用C做的库能够在C++使用,在定义头文件时需要额外操作extern C

如果在C++中使用 函数声明为

extern "C"

{

函数声明

}

如果在C中使用 函数声明为

函数声明

 

3.标准定义:

#ifndef _MYFUC_H_

#define _MYFUC_H_

#ifdef __cplusplus

extern "C"{

#endif

//函数声明int sum(int a ,int b);

#ifdef __cplusplus

}

#endif

#endif

0 0
原创粉丝点击