创建lib
1创建静态库
要创建静态库,选择File->New菜单,弹出New对话框。选择Projects标签,在项目类型列表框中选择Win32 Static Library,在Name中输入MyLib,表明要创建一个MyLib.lib的静态库文件,下一步什么也不选,直接完成。
2.加入一个头文件(12345.h),里面加入代码
#ifndef _MYMATH_H
#define _MYMATH_H
extern "C"
{
int MyFunc(int n);//在大括号内进行函数的声明
}
#endif
3.加入一个源文件(5678.cpp),里面加入函数的定义代码,注意在开始引入12345.h
即
#include"12345.h"
int MyFunc(int n)
{
return n+=1003;
}
4.编译生成静态库MyLib.lib
5.测试静态库
生成一个程序,把MyLib.lib和12345.h拷入与这个程序的dsw文件同一目录下,再用Project->Add to Project->Files命令,将MyLib.lib加入到工程中
再用代码引入头文件#include "12345.h"
6.用代码测试成功
int a=MyFunc(2);
CString s;
s.Format("jiguo is %d",a);
MessageBox(s);
转自:http://hi.baidu.com/yu_xiyan/blog/item/13e03c94d6989a15d31b7022.html
dll的创建以及使用参见:
http://www.360doc.com/content/10/0915/11/3214106_53798610.shtml
.lib文件可以让别人来调用你的工程,但是只能允许C++调用,而且需要同时提供所要使用类的头文件以及该工程的.lib文件。
有两个工程 project A & project B,project A 中有类class a。现在想要在project B中使用类a的行为。
方法一:
step1: 右键单击project A工程名->configuration properties->General->Configuration Type中,选择Static Library(.lib)。这样,在外层Debug文件夹中会产生以该工程名命名的.lib文件。
step2: 将类a的头文件以及上述所创建的.lib文件拷贝到project B所在的文件夹下。
step3: 在工程B中使用类a时,需要包含以下两个语句:
#include "a.h"
#pragma comment(lib, "A.lib")
方法二:
step1: 如上
step2: 省略
step3: 在工程B中使用类a时,使用相对路径来包含头文件
#include "..//A//a.h"
#paragma comment(lib, "..//Debug//A.lib")
注:工程名与该工程所在的文件夹名是一样的。方法一跟方法二是同一种创建方法,使用的方式也是一致的,只是方法二用了相对路径。
方法三:
step1: 右键点击solution名->Add New Project->Visual C++->CLR->Class Library,命名为C。就像添加一般的工程一样。
step2: 右键单击C工程名->configuration properties->General->Configuration Type中,选择Static Library(.lib)。
step3: 然后再该工程中,任意添加类,行为等。
step4: 使用方法同方法一和方法二的step3。
注意:
创建MFC工程的.lib文件时, 需要修改两处:
1. 需要在该MFC工程的stdafx.h中添加#define _AFXDLL;
2. 右键单击使用的工程, properties->c/c++->code generation->runtime library中将MDd改为MD.