zoukankan      html  css  js  c++  java
  • 项目初始

    此处用的是vs2013

    1.新建的时候建立Win 32程序

    此时会跳出来一个窗口,Win 32 应用程序向导

    在C语言和C++中,都能够进行封装,即C有函数封装,而C++通过类进行封装。

    而dll和静态库,就是可以用来存放一些函数,或者类,可以拿来直接使用(封装过后使用)

    官方定义:

    1.  DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。

      DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。

    2.  静态库:静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。

    详细解释:

    windows中静态库lib和动态dll的区别及使用方法:http://blog.csdn.net/dxzysk/article/details/66477147

    注:在进行编译的时候,头文件(即.h文件)不会被直接编译,而是附着在cpp文件中编译成一个个的 .obj 文件

    程序编译时生成的中间代码文件。目标文件,一般是程序编译后的二进制文件,再通过链接器(LINK.EXE)和资源文件链接就成可执行文件了。OBJ只给出了程序的相对地址,而可执行文件是绝对地址。

     

     资源链接很好理解,但链接器(LINK.EXE)?
        ——链接器(LINK.EXE)是链接.lib文件、.obj目标文件、.res;.lib文件又称之为导入库文件,只记录了函数所在DLL的位置。
    vs中的debug和release的大区别:
      http://blog.csdn.net/lionel_coder/article/details/51913226
     不过简要说一下就是,debug是面向程序员或者是开发人员,而release面向的是使用者,即用户。
     
    不过点击完成后:

    编辑运行后,会出现下面这种情况:

     在用windows中的函数时,可以自行使用MSDN来进行参考各种函数的使用方法以及用法。

     1 #include <windows.h>
     2 
     3 #pragma comment (lib,"Winmm.lib")
     4 //导入库文件
     5 //无法解析的外部命令
     6 
     7 //入口 WinMain
     8 //windows 有自己的数据类型,基于CC++重定义的类型
     9 // __stdcall 表示函数的参数由右往左入栈(没有时会被警告)
    10 int __stdcall WinMain(HINSTANCE hInstance,    //当前应用程序实例句柄
    11     HINSTANCE hPrevInstance,                //当前应用程序父实例句柄(打开当前程序的前一个实例)
    12     LPSTR lpCmdLine,                        //命令行
    13     int nShowCmd)                            //显示方式(窗口最大,最小,隐藏...)
    14 {
    15 
    16     MessageBox(NULL, "132", "abc", MB_YESNO);
    17     /*
    18         MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
    19         HWND hWnd,            窗口句柄,消息盒子在哪个窗口之上
    20         LPCTSTR lpText,        文本
    21         LPCTSTR lpCaption,    标题文本
    22         UINT uType            消息盒子的风格
    23     */
    24 
    25     //PlaySound("123.wav",NULL, SND_ASYNC | SND_FILENAME | SND_LOOP);
    26     //只能播放.wav
    27     //播放音乐
    28     mciSendString("open 123.mp3 alias a", NULL, 0, NULL);
    29     //alias 是用来设置别名
    30     mciSendString("play a", 0, 0, 0);
    31     while (true)
    32     {
    33 
    34     }
    35     return 0;
    36 }
  • 相关阅读:
    案例------存储过程
    案例------冒泡排序
    案例------递归调用
    天气预报接口api(中国天气网)
    【转】ubuntu64,ndk-r9 编译 ffmpeg 2.1.1的config文件
    android权限大全
    JNI 回调小记
    java设置环境变量小工具
    bootstrap之双日历时间段选择控件—daterangepicker(汉化版)
    一个 bootstrap 弹出框插件
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/8536040.html
Copyright © 2011-2022 走看看