Visual Studio 2013生成dll-菜鸟教程

Visual Studio 2013生成dll-菜鸟教程

  • 项目创建
  • dll功能实现
    • 初始工程
    • 头文件和源文件创建
    • 项目构建说明
    • 代码实现
  • dll生成

项目创建

1、打开Visual Studio2013,选择Visual C++,接着选择Win32控制台应用程序
Visual Studio 2013生成dll-菜鸟教程_第1张图片

2、点击“下一步”,在win32应该程序向导中选择DLL(D),点击完成即可生成一个用来产生dll的工程
Visual Studio 2013生成dll-菜鸟教程_第2张图片

dll功能实现

初始工程

Visual Studio 2013生成dll-菜鸟教程_第3张图片

	最初的工程如上图所示,下面需要添加相应的头文件(.h)和源文件(.cpp)

头文件和源文件创建

	头文件和源文件的创建是类似的

1、选择文件添加

可以右键工程名,例如“pydll”,选择“添加”,继续选择“新建项”进入头/源文件创建界面
Visual Studio 2013生成dll-菜鸟教程_第4张图片
也可以右键文件夹,例如“头文件”,选择“添加”,继续选择“新建项”进入头/源文件创建界面
Visual Studio 2013生成dll-菜鸟教程_第5张图片

2、头/源文件创建
在“添加新项”的界面添加相关头文件和源文件
Visual Studio 2013生成dll-菜鸟教程_第6张图片

项目构建说明

接下来就是相关相关代码的实现,在展示代码之前先简单就框架中的各个文件的作用进行说明
我创建了两个头文件和一个源文件,其中“CallMath.h”和“CallMath.cpp”是声明了一个类,目前其中仅实现了一个“输出”的简单功能,用于实现读取类中函数的功能,另外实现的两个功能“传入数据进行相加”和“传入一维数组进行赋值”在pydll.cpp中实现
另一个头文件“PyInterface.h”是设置导出函数的相关代码

代码实现

CallMath.h

#pragma once
class CallMath {
public:
	CallMath();
	~CallMath();

	void printStr();
};

CallMath.cpp

#include "CallMath.h"
#include   
using namespace std;

CallMath::CallMath() {
}

CallMath::~CallMath() {
}

void CallMath::printStr() {
	cout << "Hello I am come from C++ World!";
}

PyInterface.h
其中涉及到一个宏定义,#define PYAPI _declspec(dllexport),这里面的“_declspec(dllexport)”是dll导出函数的必备条件,若要让函数能通过dll被调用,其需要放在函数返回值前面,表明这个函数是dll导出的函数(注:DLL导出函数和类是有区别的,这里暂时仅导出函数,导出类等后续博客更新的时候添加)

#include "CallMath.h"

#define PYAPI _declspec(dllexport)

extern "C"{
	PYAPI void printStr();
	PYAPI int add(int a, int b);
	PYAPI int * show(int * c);
}

pydll.cpp

// pydll.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "PyInterface.h"
#include 
#include 
using namespace std;

void printStr() {
	CallMath callM;
	callM.printStr();
}

int add(int a, int b) {
	return a + b;
}


int * show(int * c) {
	unsigned short *block_temp = new unsigned short[10 * 10 * 10];

	for (int i = 0; i < 10*10*10; i++) {
		block_temp[i] = 255+i;
	}
	for (int i = 0; i < 10 * 10 * 10; i++) {
		c[i] = (int)block_temp[i];
	}

	return c;
}

dll生成

选择编译的环境,这里我选择的是Debug/x64,也可根据自己的需要设置不同的模式(注:编译环境的选取很重要,遇到“xxx不是有效程序”问题可能就是dll生成的版本不对)
在这里插入图片描述

在完成了相关代码的编写后,最后一步就是dll的生成:我们右键工程“pydll”,点击“生成”,当出现下面的结果则说明dll生成成功

Visual Studio 2013生成dll-菜鸟教程_第7张图片

最后可以在该项目的“\x64\Debug”中找到生成的dll和lib文件,例如我的路径就是“F:\Visual Studio 2013\Projects\pydll\x64\Debug”

Visual Studio 2013生成dll-菜鸟教程_第8张图片

你可能感兴趣的:(Visual,Studio,c++,visual,studio,dll)