首先新建一个空项目,并分别新建头文件和原文件: 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)
设置好后 就可以编译了 右键项目 点击重新生成即可
点完生成后 即可在项目目录下 找到对应的DLL文件了
上面提到的c++编译dll和c编译的dll有什么区别呢?
区别如图:
既然两者有区别,那么在使用dll的时候 就要区分了
。。。。