C++编写动态链接库dll

新建项目,选择Visual C++下的Windows桌面程序,选择动态链接库程序,设置保存路径和文件名,默认会生成一些文件,包括预编译头文件。

  • 不带头文件
// ImageMosaic.cpp : Defines the exported functions for the DLL application.
//

#include "stdafx.h"

// 这里编写主要函数,即在外部调用dll时要引用的函数
 extern "C" _declspec (dllexport) void ImageUnit(int *data, int M, int N, int num)​
{

}​

    编译项目即可,右键项目,Build,即可在Debug目录里生成lib和dll文件。

  • 带头文件

    新建h文件:右键项目,Add一个h文件:

#pragma once
#ifndef SCM_H   // 匹配h文件名
#define SCM_H

extern "C"
{
	_declspec(dllexport) void invSIRT(float **TArray, float MeaAmp[], int iters, float x[]);

	_declspec(dllexport) void invSVD(float **TArray, float MeaAmp[], float lemt, int iters, float x[]);

	_declspec(dllexport) void invCG(float **TArray, float MeaAmp[], int iters, float x[]);
}

#endif

    在cpp文件里引用刚才Add的头文件,将头文件里的文件全部实现。

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

#include "stdafx.h"
#include "SCM.h"


void invSIRT(float **TArray, float MeaAmp[], int iters, float x[]) 
{

}

void invSVD(float **TArray, float MeaAmp[], float lemt, int iters, float x[])
{

}

void invCG(float **TArray, float MeaAmp[], int iters, float x[])
{

}

 

你可能感兴趣的:(C++学习手记)