创建自己的dll和lib文件
2009-04-23 15:47
288 查看
经常使用到第三方库。比如:glut,freetype,sdl,大一点的有CEGUI,OSG等。
这些库虽然是开源的,但是很多时候只是使用他们,一般不会去修改。
使用就会涉及到三个东西:.h .lib .dll文件。
主要有三种模式:
.h+.lib
.h+.lib+.dll
.dll
第二种是最常见的,其他两种都比较少
一,下面自己实现一个dll和lib:
英文链接网址:http://msdn.microsoft.com/en-us/library/ms235636(VS.80).aspx
注意我的编译器是vs2005。
1,建立一个win32控制台应用程序, 输入工程名字后点击 确定 点击下一步, 选择应用程序类型: DLL 附加选项选择:空项目 。点击确定
2,在空的工程中添加头文件MathFuncsDll.h ,内容如下:
3,添加MathFuncsDll.cpp文件内容如下:
4, 设置工程属性:
左边解决方案资源管理器中右击工程名:弹出的对话框中:左边,配置属性:/ 常规 下: 右边 配置类型:选择 动态库(.dll)
然后点击生成:/ 生成 MathFuncDll。
此时可以到debug文件夹下去查看一下: MathFuncsDll.dll MathFuncsDll.lib 这两个文件是我们最关心的。注意此时的MathFuncsDll.lib文件只有3kb大
二,使用dll和lib文件
新建一个空的win32控制台应用程序:UseMathDll项目名字
添加cpp文件MyExecRefsDll.cpp:
然后将MathFuncsDll.lib 和 MathFuncsDll.h文件 放到和MyExecRefsDll.cpp一个文件目录下,也就是当前目录下。将MathFuncsDll.dll可以放到system32下,当然了最简单的做法就是放到UseMathDll这个工程的debug或者release文件夹里面,将来生成的exe就可以直接在当前目录下找到需要的dll文件。
此时就可以点击运行了:
结果如下:
三,直接使用.h 和 lib文件
还是打开MathFuncsDll工程项目,依照条目一中的设置工程属性:不过最后的配置类型 选择 静态库(.lib)
然后生成MathFuncsDll,然后到debug下面看一下,此时的MathFuncsDll.lib文件变成了29k
然后把MathFuncsDll.lib替换掉UseMathDll工程目录下的原来的MathFuncsDll.ib文件,而且把Debug下的MathFuncsDll.dll删掉,UseMathDll照样正常运行。
OK,That is all.
Hope will be helpful for you
这些库虽然是开源的,但是很多时候只是使用他们,一般不会去修改。
使用就会涉及到三个东西:.h .lib .dll文件。
主要有三种模式:
.h+.lib
.h+.lib+.dll
.dll
第二种是最常见的,其他两种都比较少
一,下面自己实现一个dll和lib:
英文链接网址:http://msdn.microsoft.com/en-us/library/ms235636(VS.80).aspx
注意我的编译器是vs2005。
1,建立一个win32控制台应用程序, 输入工程名字后点击 确定 点击下一步, 选择应用程序类型: DLL 附加选项选择:空项目 。点击确定
2,在空的工程中添加头文件MathFuncsDll.h ,内容如下:
// MathFuncsDll.h namespace MathFuncs { class MyMathFuncs { public: // Returns a + b static __declspec(dllexport) double Add(double a, double b); // Returns a - b static __declspec(dllexport) double Subtract(double a, double b); // Returns a * b static __declspec(dllexport) double Multiply(double a, double b); // Returns a / b // Throws DivideByZeroException if b is 0 static __declspec(dllexport) double Divide(double a, double b); }; }
3,添加MathFuncsDll.cpp文件内容如下:
// MathFuncsDll.cpp // compile with: /EHsc /LD #include "MathFuncsDll.h" #include <stdexcept> using namespace std; namespace MathFuncs { double MyMathFuncs::Add(double a, double b) { return a + b; } double MyMathFuncs::Subtract(double a, double b) { return a - b; } double MyMathFuncs::Multiply(double a, double b) { return a * b; } double MyMathFuncs::Divide(double a, double b) { if (b == 0) { throw new invalid_argument("b cannot be zero!"); } return a / b; } }
4, 设置工程属性:
左边解决方案资源管理器中右击工程名:弹出的对话框中:左边,配置属性:/ 常规 下: 右边 配置类型:选择 动态库(.dll)
然后点击生成:/ 生成 MathFuncDll。
此时可以到debug文件夹下去查看一下: MathFuncsDll.dll MathFuncsDll.lib 这两个文件是我们最关心的。注意此时的MathFuncsDll.lib文件只有3kb大
二,使用dll和lib文件
新建一个空的win32控制台应用程序:UseMathDll项目名字
添加cpp文件MyExecRefsDll.cpp:
#include <iostream> #include "MathFuncsDll.h" #pragma comment(lib , "MathFuncsDll.lib") //导入lib文件 using namespace std; int main() { double a = 7.4; int b = 99; cout << "a + b = " << MathFuncs::MyMathFuncs::Add(a, b) << endl; cout << "a - b = " << MathFuncs::MyMathFuncs::Subtract(a, b) << endl; cout << "a * b = " << MathFuncs::MyMathFuncs::Multiply(a, b) << endl; cout << "a / b = " << MathFuncs::MyMathFuncs::Divide(a, b) << endl; system("PAUSE"); return 0; }
然后将MathFuncsDll.lib 和 MathFuncsDll.h文件 放到和MyExecRefsDll.cpp一个文件目录下,也就是当前目录下。将MathFuncsDll.dll可以放到system32下,当然了最简单的做法就是放到UseMathDll这个工程的debug或者release文件夹里面,将来生成的exe就可以直接在当前目录下找到需要的dll文件。
此时就可以点击运行了:
结果如下:
a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747475 请按任意键继续. . .
三,直接使用.h 和 lib文件
还是打开MathFuncsDll工程项目,依照条目一中的设置工程属性:不过最后的配置类型 选择 静态库(.lib)
然后生成MathFuncsDll,然后到debug下面看一下,此时的MathFuncsDll.lib文件变成了29k
然后把MathFuncsDll.lib替换掉UseMathDll工程目录下的原来的MathFuncsDll.ib文件,而且把Debug下的MathFuncsDll.dll删掉,UseMathDll照样正常运行。
OK,That is all.
Hope will be helpful for you
相关文章推荐
- 创建自己的dll和lib文件 (转自ryfdizuo)
- 创建自己的dll与lib:dll与lib文件的区别
- 创建自己的dll和lib文件 .
- 创建自己的dll与lib:dll与lib文件的区别
- 解决vs创建dll编译无法生成lib文件问题
- 解析dll文件和 lib文件的区别(如何利用VC创建DLL文件)
- 创建动态链接库,使用自己的dll中的排序算法,用Qt将排序用时在界面上用表格的形式呈现出来
- 在VS中创建自己的Lib、DLL
- 引用自己创建的类库,然后调用dll
- C#创建自己的DLL(动态链接库)
- 解析dll文件和 lib文件的区别(如何利用VC创建DLL文件)
- MetaTrader的拓展应用,创建自己的DLL程序
- [转]关于创建dll项目无法生成对应Lib文件的问题
- 解析dll文件和lib文件的区别(如何利用VC创建DLL文件)
- C++创建自己的库文件(dll文件创建和编译)
- 怎么使用VS2010创建自己的DLL,并配置到另外的一个工程
- 向自己的模块添加错误代码_使用vc自带的工具MC创建资源并将其添加至DLL或EXE中
- 2014_03_30工作日志:error创建dll时,只生成了dll,却没有发现lib文件
- dll文件和lib文件的区别(如何利用VC创建DLL文件)