使用静态连接库LIB
2010-03-29 15:51
162 查看
本例是在VS2008中调试通过:
1.新建一个WIN32项目,名字为slib,在WIN32应用程序向导中,选择静态库
2.新建两个文件lib.h lib.cpp
//文件:lib.h
#ifndef _LIB_H_
#define _LIB_H_
/*************************************************
请注意函数定义前的关键字extern "C",这是由于我们使用了C++语言来开发DLL,为了使C语言模块能够访问该导出函数,我们应该使用C链接来代替C++链接。否则,C++编译器将使用C++的类型安全命名和调用协议,这在使用C调用该函数时就会遇上问题。在本例中并不需要考虑到这个问题,因为我们在开发DLL和应用程序时都是使用C ++,但我们仍然强烈建议使用extern "C",以保证在使用C编写的程序调用该DLL的导出函数不会遇上麻烦。
********************************************************************************************/
extern "C" int add(int x,int y);
#endif
//文件:lib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}
3,生成lib.lib.
4,然后在原工程中,选择解决方案,右键-->新建项目,.新建一个WIN32项目,名字为Test,在WIN32应用程序向导中,选择WIN32应用程序,
5,在拷贝文件lib.h和lib.lib到test/test目录下,在解决方案管理器中,选择“显示所有文件”,将lib.h包括在Test项目中.
6.在test.cpp文件中添加#include "lib.h",#pragma comment(lib,"lib.lib")
7.测试例子:
int temp=0;
temp=add(10,5);
WCHAR schar[50];
swprintf(schar,L"%d",temp);
MessageBox(NULL, schar,L"Result",MB_OK);
最终结果显示;15
1.新建一个WIN32项目,名字为slib,在WIN32应用程序向导中,选择静态库
2.新建两个文件lib.h lib.cpp
//文件:lib.h
#ifndef _LIB_H_
#define _LIB_H_
/*************************************************
请注意函数定义前的关键字extern "C",这是由于我们使用了C++语言来开发DLL,为了使C语言模块能够访问该导出函数,我们应该使用C链接来代替C++链接。否则,C++编译器将使用C++的类型安全命名和调用协议,这在使用C调用该函数时就会遇上问题。在本例中并不需要考虑到这个问题,因为我们在开发DLL和应用程序时都是使用C ++,但我们仍然强烈建议使用extern "C",以保证在使用C编写的程序调用该DLL的导出函数不会遇上麻烦。
********************************************************************************************/
extern "C" int add(int x,int y);
#endif
//文件:lib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}
3,生成lib.lib.
4,然后在原工程中,选择解决方案,右键-->新建项目,.新建一个WIN32项目,名字为Test,在WIN32应用程序向导中,选择WIN32应用程序,
5,在拷贝文件lib.h和lib.lib到test/test目录下,在解决方案管理器中,选择“显示所有文件”,将lib.h包括在Test项目中.
6.在test.cpp文件中添加#include "lib.h",#pragma comment(lib,"lib.lib")
7.测试例子:
int temp=0;
temp=add(10,5);
WCHAR schar[50];
swprintf(schar,L"%d",temp);
MessageBox(NULL, schar,L"Result",MB_OK);
最终结果显示;15
相关文章推荐
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- 动态连接库DLL和静态连接库lib的区别小记
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- 如何在 静态编译的QT 5.5.1 中 使用数据库插件连接 ODBC(调用静态插件)
- VS中使用sqlite静态连接
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- VS中使用sqlite静态连接
- Ubuntu 14.04 server配置使用无线连接静态设置IP
- VMware中使用nat连接时如何配置静态ip
- SocketChannel类(用于阻塞或非阻塞式传输数据) 创建SocketChannel要使用SocketChannel类的静态工厂方法。 SocketChannel open():创建未连接的
- SocketChannel类(用于阻塞或非阻塞式传输数据) 创建SocketChannel要使用SocketChannel类的静态工厂方法。 SocketChannel open():创建未连接的
- 如何在 静态编译的QT 5.5.1 中 使用数据库插件连接 ODBC
- Dev-Cpp/Mingw32环境下使用静态连接库和做自己的静态库
- 动态链接库dll和静态连接库lib的区别
- linux 动态链接库的创建和使用--静态连接
- 静态使用DLL动态连接库
- gcc调试中使用静态连接库和动态链接库以及-I -l L含义
- 使用静态库 静态连接和动态连接
- 静态连接库的生成和使用
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)