1、基本思路
首先建立一个项目(第一个),用于生成Dll和lib,为了方便后面项目的调用;然后对第一个项目生成Dll、Lib文件;最后,创建另外一个工程项目(第二个),对Dll和lib进行调用使用;
2、实现步骤
2.1第一个项目
如何新建项目这里不再赘述
头文件def.h
#pragma once
#ifndef __WEIDUAN_H__
#define __WEIDUAN_H__
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
int add(int x, int y);
#ifdef __cplusplus
}
#endif //__cplusplus
#endif //!__COMM_H__
源文件def.c
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include "def.h"
int add(int x, int y)
{
return x + y;
}
使用.def模板生成库,在该项目点击右键添加->新建项,在代码出选择模块定义文件
模块定义内容如下:
LIBRARY def
EXPORTS
add
右键点击该项目右键,选择属性->常规,找到配置类型由.exe变为动态库dll,公共语言运行时支持选择无公共语言运行时支持,点击应用;此时设置完成。
在该项目的连接器中,一定要注意模块定义文件名要与def文件中的名字相同,否则会出现wraning LINK 4070.
此时点击项目重新生成。此时项目路径中的Debug中会有.dll和.lib,此时注意输出也会有提示;此时库已经生成。
2.2 第二个项目
在该项目上面选择解决方案->添加->新建项目,添加第二个项目,可以将第二个项目命名为xxxTest.c
在第二个项目中,右键选择属性:
在C/C++中选择添加附加包含目录,选择项目所在路径,如下图所示
在链接器->输入->附加依赖项中选择.lib的全路径,这步很重要!
,
3、调用库进行使用
引用库文件的.h,调用库进行使用:
#include <stdio.h>
#include <Windows.h>
#include "../def/def.h"
int main()
{
int a = add(1, 4);
printf("%d\n", a);
system("pause");
}