把一些重要的代码编译成Lib或者dll
来源:互联网 发布:知中系列有几本 编辑:程序博客网 时间:2024/05/21 15:07
1. 对于一些重要代码 可以编译成dll或者lib, 然后提供给其他人使用和自己使用
1.1 lib 在VS2008中很简单, 就是创建一个Win32 DLL或者其他的DLL工程, 在
Property | Configuration Properties | General | Configuaration Type 中选择Static Library(.lib)
编译即可生成lib
对于使用者, 包含对应的头文件(函数, 类等声明),
在对应的地方输入类似下面的语句或者在对应的位置设置lib 就可以了.
#ifdef _DEBUG
#pragma comment(lib, "../Debug Static/ThreadPool.lib");
#else
#pragma comment(lib, "../Release Static/ThreadPool.lib");
#endif
得到lib后, 使用者连接lib时有时会报一堆连接错误, 这是lib的工程选项与使用者的工程选项不一致造成的
主要选项有:
a. Property | Configuration Properties | C/C++ | Code Generation | Rumtime Library 你可以根据情况选择对应的选项,
b. Property | Configuration Properties | General | Use of MFC 你可以根据需要选择对应的选项
由于生成lib时工程是Win32 Lib (本人比较喜欢这个), 所以默认选项就是 Use Standard Windows Libraries
但在Win32 Lib中也可以使用MFC的一些类的 例如CString, 那你就要选择Use MFC in a Shared DLL或者Use MFC in a Static DLL了
当你选择了这个的时候, a选项可能会有问题, b选项选择了MFC, a选项必须选MD了 (不能选MT).
1.2 对于dll
导出类:
// point.h文件
#pragma once
#ifdef DLL_FILE
class _declspec(dllexport) point //导出类point(DLL要导出类)
#else
class _declspec(dllimport) point //导入类point(使用者要导入类)
#endif
{
public:
float y;
float x;
point();
point(float x_coordinate,float y_coordinate );
};
// point.cpp文件
#define DLL_FILE
#include "point.h"
使用者只要包含对应的头文件和下面这些, 还有运行的时候需要对应的dll文件.
#ifdef _DEBUG
#pragma comment(lib, "../Debug Static/ThreadPool.lib");
#else
#pragma comment(lib, "../Release Static/ThreadPool.lib");
#endif
- 把一些重要的代码编译成Lib或者dll
- DOS下把.vb编译成.dll的
- 把aspx文件编译成DLL文件
- 把aspx文件编译成DLL文件
- 把cs文件编译成dll
- 把aspx文件编译成DLL文件
- 把aspx文件编译成DLL文件
- 把aspx文件编译成DLL文件
- 把aspx文件编译成DLL文件
- 把CS文件编译成dll文件
- 把aspx文件编译成DLL文件
- 把aspx文件编译成DLL文件
- 把aspx编译成dll文件
- 把aspx文件编译成DLL文件
- 把aspx文件编译成DLL文件
- 把aspx文件编译成DLL文件
- 把jar包编译成.dll类库
- 将c代码编译成dll文件
- 设置vim语法高亮显示和自动缩进
- air open drectory
- 修改数据库字段类型
- 如何完成Apache虚拟主机设置?
- 在opencv中输入文字
- 把一些重要的代码编译成Lib或者dll
- 相对定位CSS
- 关于SSI和TOMCAT连接池的环境配置
- UVA 10131 - Is Bigger Smarter
- 手机电视机屏幕分辨率
- 【linux服务器】 NFS + 防火墙配置
- 大数据的处理总结
- TCP/IP连接建立与断开
- 根据共享参数来过滤满足条件的对象(代码)