C#调用DLL示例和注意事项

1. 生成dll文件

  • 利用visual studio 2017新建一个windows控制台应用空项目。
  • 添加接口定义和实现相关的.h和.cpp文件,示例如下:
# .h文件
#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <iostream>

#ifdef ImageHandleDLL_EXPORTS
#define ImageHandle_EXPORTS extern "C" __declspec(dllexport)
#else
#define ImageHandle_EXPORTS extern "C" __declspec(dllimport)
#endif

typedef enum
{
	OPERATION_SUCCESS = (0),
	INPUT_CHANNELS_ERR = (1),
	INPUT_EMPTY_ERR = (2),
	PROCESS_FAILE = (3),
} ErrCode;


ImageHandle_EXPORTS ErrCode Read_Image(char * filepath, unsigned char **output_image_data, int &image_h, int &image_w, int &input_image_channels);
ImageHandle_EXPORTS ErrCode Write_Image(unsigned char **intput_image_data, char * filepath, int image_h, int image_w, int input_image_channels);

ImageHandle_EXPORTS ErrCode Image_Gray(unsigned char **input_image_data, unsigned char **output_image_data, int image_h, int image_w, int input_image_channels = 3);

# .cpp文件

ErrCode Read_Image(char * filepath, unsigned char **output_image_data, int &image_h, int &image_w, int &input_image_channels)
{
	try {
		cv::Mat src = cv::imread(filepath);
		image_h = src.rows;
		image_w = src.cols;
		input_image_channels = src.channels();
		if (output_image_data[0] == nullptr) {
			output_image_data[0] = (unsigned char *)malloc(image_h*image_w *input_image_channels * sizeof(unsigned char
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值