C++/VC++编程的疑难问题及解答(二)[图](2)
用户在使用动态链接库时,要包含上面的头文件staticLinkLib.h,并且在项目属性中的"链接器/输入"选择静态链接库文件staticLinkLib.lib。如下图:
图一 VC.net下的项目属性设置
这样,用户在自己的应用程序就可以调用静态链接库中定义的接口函数了。
动态链接库的建立和使用
动态链接库的建立/使用和静态链接库基本相同,不同的地方在于接口函数的声明形式。动态链接库的接口函数声明形式如下:
extern "C" __declspec(dllexport) return_type interfaceFunctionName( parameter… ); 另外,动态链接库编译之后生成一个动态链接库文件(dll)和一个.lib文件。提交时需要提交这两个文件和对应的接口的头文件。
用户使用动态链接库时,也需要在项目属性中的"链接器/输入"选择对应的.lib文件,那么程序会自动调用.dll文件的。用户不需要包含上面提交的头文件,用户只需要按照规定的形式声明接口函数即可,形式如下:
extern "C" __declspec(dllimport) return_type interfaceFunctionName( parameter… );这样,用户就可以在自己的应用程序中调用动态链接库中定义的接口函数了。
动态链接库中不能有屏幕输出语句,如cout << …等,因此调试时不太方便,这里没有研究动态链接库的调试方法。
静态链接库和动态链接库的一个很大的区别还有,在静态链接库中不能在包含其他的动态链接库或者静态库;而在动态链接库中还可以再包含其他的动态/静态链接库。