visual studio:
1、新建项目,选择visual c++<windows桌面>,动态链接库dll
2、会生成dllmain.cpp、stdafx.cpp、stdafx.h、targetver.h
3、头文件和源文件写成自己的函数功能,项目属性-》配置属性-》高级-》字符集(选择unicode字符集);c/c++ -》预编译头-》(不使用预编译头,同时删除预编译头文件)
4、在自己的源代码中加入
#include "stdafx.h"
#ifdef TEST_EXPORTS
// 检查是否定义了TEST_EXPORTS 宏
// 如果 TEST_EXPORTS 被定义,那么 POSTPROCESS 将被定义为 __declspec(dllexport),表示该符号(如函数或类)将被导出到 DLL 中。否则表示该符号将在 DLL 中被导入
#define DLLEXPORT __declspec(dllexport) //函数被导出为dll,被调用
#else
#define DLLEXPORT __declspec(dllimport) // 函数导入
#endif
#if _DEBUG
#pargma comment(lib,"opencv_world455d.lib")
#else
#pargma comment(lib,"opencv_world455.lib")
#endif
//extern "C" _declspec (dllexport) void main()自己的函数
5、调用dll时,需要dll文件、lib文件、.h头文件以及一些库(如opencv)
6、c#如果调用c++的dll,如果出错,那么大概是输入的数据格式有问题