c语言或c++编写动态链接库DLL(一)


首先新建一个空项目,并分别新建头文件和原文件: hello.h 和 hello.c

注意: 原文件后缀是.c 而不是cpp  因为cpp和c在生成dll的时候 会使用不同的编译器(两者区别见文章尾部)

在hello.h里写入

#pragma once				/*跟ifndef...#endif效果一样  都是为了防止重复包含*/

__declspec(dllexport) void SayHello();
__declspec(dllexport) int myfunAdd(int a, int b);
__declspec(dllexport) int myfun2(int a, int b);

在hello.c里写入

#include <stdio.h>
#include "hello.h"

void SayHello(){
	printf("hello\n");
}
int myfunAdd(int a, int b){
	return a + b;
}
int myfun2(int a, int b){
	return a * b;
}

此时代码部分写完了  如果直接编译肯定会出错  因为默认会编译成exe 而我们的代码连main函数都没有  

所以还要修改一下编译的配置.

右键项目>属性>配置属性>常规  配置类型选择动态库(.dll)

image.png

设置好后 就可以编译了  右键项目  点击重新生成即可

image.png

点完生成后  即可在项目目录下 找到对应的DLL文件了


扩展阅读:

上面提到的c++编译dll和c编译的dll有什么区别呢?

区别如图:

image.png

既然两者有区别,那么在使用dll的时候 就要区分了

。。。。