zoukankan      html  css  js  c++  java
  • VC++:创建,调用Win32静态链接库

    概述

    DLL(Dynamic Linkable Library)动态链接库,Dll可以看作一种仓库,仓库中包含了可以直接使用的变量,函数或类。
    仓库的发展史经历了"无库" ---> "静态链接库"  ---> "动态链接库"。
    静态链接库与动态链接库都能实现共享代码,如果使用静态链接库,编译后lib中的指令会被包含在生成的EXE文件中,如果使用动态链接库,则不会被包含到EXE文件中,EXE文件执行时动态加载和卸载dll文件。

    库的分类

    1.Win32库(非MFC)库
        Win32库又分为:动态链接库和静态链接库
        Win32库不采用MFC类库结构,导出函数为标准的C接口,可以被MFC或非MFC编写的应用程序调用。
     

    2.MFC库
        MFC库又分为:MFC规则DLL和MFC扩展DLL
        MFC规则DLL:包含一个集成自CWinApp的类,但其无消息循环。
        MFC扩展DLL:采用MFC的动态链接库创建,它只能被MFC编写的应用程序调用。

    创建Win32静态链接库

    使用vs2010进行创建

    1.“新建项目” 项目名为"wn32lib”--->选择"Win32项目" --->下一步 勾选 "静态库",点击完成:

    这时候将生成一个空的项目,创建wn32lib.cpp和wn32lib.h。

    wn32lib.cpp

    #include <stdio.h>
    
    int WN_Add(int a, int b)
    {
    	return a + b;
    }
    
    int WN_Say()
    {
    	printf("say hello 
    ");
    	return 1;
    }


    wn32lib.h

    #ifndef _WIN32LIB_H 
    #define _WIN32LIB_H
    
    
    int WN_Add(int a, int b);
    int WN_Say();
    
    #endif

    编译该项目,会在Debug目录下生成wn32lib.lib文件

    调用Win32静态链接库

    鼠标在解决方案右击  ---> "添加" ---> "新建项目",项目名称为"libTest",选择win32控制台项目

    在libTest.cpp源文件中添加如下代码:

    // libTest.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "../wn32lib/wn32lib.h"
    
    
    #ifdef _DEBUG
    #pragma comment(lib, "../Debug/wn32lib.lib")
    #else
    #pragma comment(lib, "../Release/wn32lib.lib")
    #endif
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int result = WN_Add(1, 5);
    	printf("result = %d
    ", result);
    	WN_Say();
    	getchar();
    	return 0;
    }

    编译连接生成libTest.exe文件,执行结果如下:

    欢迎加群交流:C/C++开发交流

  • 相关阅读:
    Leetcode Binary Tree Level Order Traversal
    Leetcode Symmetric Tree
    Leetcode Same Tree
    Leetcode Unique Paths
    Leetcode Populating Next Right Pointers in Each Node
    Leetcode Maximum Depth of Binary Tree
    Leetcode Minimum Path Sum
    Leetcode Merge Two Sorted Lists
    Leetcode Climbing Stairs
    Leetcode Triangle
  • 原文地址:https://www.cnblogs.com/woniu201/p/11694604.html
Copyright © 2011-2022 走看看