C/C++ 做库文件和使用库
来源:互联网 发布:浙江儿童dna数据库 编辑:程序博客网 时间:2024/06/11 21:20
用C++ 做动态链接库
一、建立工程
1、建立Win32控制台应用程序
2、选择动态链接库工程 DLL
3.工程建立
4.这个时候,你会发现项目中出现了一个CreatDLL.cpp的文件,该文件的第一条语句,是这样的:#include "stdafx.h"。Stdafx.h是visual 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() { }
三、配置,生成DLL和LIB
1.DLL
编译生成CreatDLL.dll
2.LIB
编译生成CreatDLL.lib
在C/C++ 使用动态链接库
1、首先,建立一个名为Add_DLL_Test的工程。
2、将CreatDLL.dll、CreatDLL.lib和MyFunction.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做的库能够在C++使用,在定义头文件时需要额外操作extern C
1 如果在C++中使用 函数声明为
extern "C"
{
函数声明
}
2 如果在C中使用 函数声明为
函数声明
3.标准定义:
#ifndef _MYFUC_H_
#define _MYFUC_H_
#ifdef __cplusplus
extern "C"{
#endif
//函数声明int sum(int a ,int b);
#ifdef __cplusplus
}
#endif
#endif
- C/C++ 做库文件和使用库
- linux c 编译和使用库文件
- 【Linux/C】如何编译和使用库文件
- C语言文件操做
- 【Chap1】文件拷贝 使用C库
- Objective-C库文件使用小记
- C标准库文件和文件夹操作
- 使用thrift做c++,java和python的相互调用
- 10、h和c文件的使用
- C#创建和使用资源文件
- 【C语言】【unix c】静态库的制作和使用
- 【C语言】【unix c】动态库的制作和使用
- c使用json-c库
- c使用json-c库
- linux .c文件生成库文件的方法与使用
- 巩固C语言(十三)----文件重定向 & 静态库和动态库的使用 &sscanf函数
- C库文件
- C库文件说明
- 20140805带的蜘蛛
- 李烨_敏捷团队中QA角色的转变
- Unity成立TEA联盟和3亿基金 内置国产虚拟现实
- Spring 常用标签
- 人脸识别《一》opencv人脸识别之收集人脸并学习
- C/C++ 做库文件和使用库
- Android View工作机制浅析(ppt)
- Linux下安装Tomcat服务器和部署Web应用
- Android localSocket
- git的学习
- Android研究之属性动画(Property Animation)完全解析详解下
- 解决arduino IDE闪退的问题(不用修改操作系统语言)
- 如何让服务重启
- GIS API (Javascript、IOS、Android版本)