封裝C專案為dll

小马同学..3發表於2024-07-21

這是標頭檔案,定義了一個介面 MyHeader.h。

#ifndef MYHEADER_H
#define MYHEADER_H

// 定義匯出DLL函式的宏
#define MY_API __declspec(dllexport)

#ifdef __cplusplus
extern "C"
{
	// 告訴編譯器下面是C語言程式碼
#endif

	// 函式宣告
	MY_API int __stdcall add(int x, int y);          // 加法函式
	MY_API int __stdcall multiply(int x, int y);     // 乘法函式
	int subtract(int x, int y);                      // 減法函式

#ifdef __cplusplus
}
#endif

#endif // MYHEADER_H

這是實現上述介面的原始檔,具體實現。

#include "MyHeader.h"
#include "stdio.h"

// 函式定義
int __stdcall add(int x, int y)
{
	// 列印兩個整數的和
	printf("加法: %d + %d = %d\n", x, y, x + y);
	return 0;
}

int __stdcall multiply(int x, int y)
{
	// 列印兩個整數的乘積
	printf("乘法: %d * %d = %d\n", x, y, x * y);
	return 0;
}

int subtract(int x, int y)
{
	// 列印兩個整數的差
	printf("減法: %d - %d = %d\n", x, y, x - y);
	return 0;
}

test demo

#include <iostream>
#include "MyHeader.h"
#pragma comment(lib,"fengzhuangC.lib")
int main()
{
	int a = 5;
	int b = 3;

	// 呼叫add函式
	add(a, b);

	// 呼叫multiply函式
	multiply(a, b);

	// 呼叫subtract函式
	subtract(a, b);

	return 0;
}

相關文章