Windows核心编程:第1章 错误处理

Github

https://github.com/gongluck/Windows-Core-Program.git

//第1章 错误处理.cpp: 定义应用程序的入口点。
//

#include "stdafx.h"
#include "第1章 错误处理.h"

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
    _In_opt_ HINSTANCE hPrevInstance,
    _In_ LPWSTR    lpCmdLine,
    _In_ int       nCmdShow)
{
    HANDLE hFile = CreateFile(TEXT("C:\\gongluck"), 0, 0, NULL, OPEN_EXISTING, 0, NULL);
    DWORD err = GetLastError();;
    HLOCAL hlocal = NULL;
    if (err != ERROR_SUCCESS)
    {
        //将错误码(可指定自然语言)格式化输出
        DWORD res = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER,
            NULL,
            err,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
            (LPTSTR)&hlocal,
            0,
            NULL);
        MessageBox(NULL, (PCTSTR)hlocal, TEXT("err"), MB_OK);
    }

    //FormatMessage的格式化输出功能
    int nYear = 2018, nMonth = 5, nDay = 22;
    TCHAR szYear[5], szMonth[3], szDay[3];
    wsprintf(szYear, TEXT("%d"), nYear);
    wsprintf(szMonth, TEXT("%d"), nMonth);
    wsprintf(szDay, TEXT("%d"), nDay);
    LPWSTR lpSource = (LPWSTR)TEXT("今天是:%1年%2月%3日");
    DWORD_PTR pArgs[] = { (DWORD_PTR)szYear, (DWORD_PTR)szMonth, (DWORD_PTR)szDay };
    const DWORD size = 100 + 1;
    WCHAR buffer[size];
    if (FormatMessage(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ARGUMENT_ARRAY,
        lpSource,
        NULL,
        NULL,
        buffer,
        size,
        (va_list*)pArgs))
    {
        MessageBox(NULL, buffer, TEXT("Date"), MB_ICONINFORMATION);
    }
    //
    system("pause");
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏封碎

Android开发减少方法数的建议 博客分类: Android小技巧 方法数android

     现在的Android应用越来越庞大,开发者越来越能感受到方法数限制带来的影响。这里简单讲几个减少方法数的小建议。

795
来自专栏数据结构与算法

93. [NOIP2001] 数的划分

问题描述 将整数n分成k份,且每份不能为空,任意两种方案不能相同(不考虑顺序)。 例如:n=7,k=3,下面三种分法被认为是相同的。 1,1,5; ...

2838
来自专栏函数式编程语言及工具

泛函编程(38)-泛函Stream IO:IO Process in action

  在前面的几节讨论里我们终于得出了一个概括又通用的IO Process类型Process[F[_],O]。这个类型同时可以代表数据源(Source)和数据终端...

1797
来自专栏YoungGy

HIVE入门_1

RUNNING HIVE $ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp $ $HADOOP_HOME/bin/h...

1948
来自专栏祥子的故事

HIVE窗口函数

CSDN博客地址:https://mp.csdn.net/mdeditor/81067060

1544
来自专栏ZKEASOFT

纸壳CMS3.0中的规则引擎

纸壳CMS3.0中的规则引擎,用于计算通用表达试结果。通常业务逻辑总是复杂多变的,使用这个规则引擎可以灵活的修改计算表达式。

2297
来自专栏nnngu

数据结构08 线索二叉树

上一篇总结了二叉树,这一篇要总结的是线索二叉树,我想从以下几个方面进行总结。 1、什么是线索二叉树? 2、为什么要建立线索二叉树? 3、如何将二叉树线索化? 4...

3026
来自专栏GreenLeaves

SQL学习之去重复查询

下面是一张表的数据 ? 执行select content from dbo.Logo,返回以下结果 ? 但是这个时候我们只需要相同的内容中的一个即可,但是查询出...

1827
来自专栏jouypub

MySQL的语句执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为...

50
来自专栏向治洪

android FragmentpagerAdapter和FragmentStatePagerAdapter的区别

1.FragmentPagerAdapter FragmentPagerAdapter 继承自 PagerAdapter。相比通用的 PagerAdapter...

1699

扫码关注云+社区