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 条评论
登录 后参与评论

相关文章

来自专栏技术小黑屋

Dump Table Structure in SQLite3

Best answer to the question Use PRAGMA table_info

762
来自专栏数据处理

CEdit只能输入16进制数

1235
来自专栏数据和云

Oracle Hints - 先知的提示

在上周恩墨微信大讲堂的讨论中,几个有趣的视图跃入我们的视野,可以分享给大家。 在Oracle 11g中,新增的视图V$SQL_HINT记录了Oracle数据库中...

2756
来自专栏杨建荣的学习笔记

关于sql_profile中的绑定变量(r4笔记第57天)

使用sql_profile来调优一些紧急的性能sql可以起到立竿见影的效果,如果sql语句本身结构就很清晰,简单,略作修改就能得到调优后的sql语句。 但是如果...

3506
来自专栏乐沙弥的世界

SQL server 2005 UNPIVOT运算符的使用

      UNPIVOT运算符相对于PIVOT运算符,它执行与PIVOT相反的操作,即将列转换到行。需要注意的是UNPIVOT运算符并不完全是PIVOT的逆向...

611
来自专栏一个会写诗的程序员的博客

图解 SQL join 语句内联合(inner join)全外联合(full outer join)左外联合(left outer join)笛卡尔积 (交叉联合(cross join))

我们用过name字段用几种不同方式把这些表联合起来,看能否得到和那些漂亮的韦恩图在概念上的匹配。

622
来自专栏芋道源码1024

数据库[分库分表]中间件 Sharding-JDBC 源码分析 —— SQL 解析(四)之插入SQL

本文主要基于 Sharding-JDBC 1.5.0 正式版 1. 概述 2. InsertStatement 3. #parse() 3.1 #parseI...

3757
来自专栏数据和云

案例分析:倾斜值传入导致 SQL 资源消耗升高

作者 | 邓秋爽:云和恩墨技术工程师,有超过七年超大型数据库专业服务经验,擅长 Oracle 数据库优化、SQL 优化和 Troubleshooting。

1154
来自专栏乐沙弥的世界

PL/SQL 下邮件发送程序

      对DBA而言,尽管在os级别下发送邮件是轻而易举的事情,然而很多时候我们也需要在PL/SQL中来发送邮件,比如监控job的执行状况等。本文根据网友(...

752
来自专栏me的随笔

T-SQL基础(二)之关联查询

表运算符的作用是把为其提供的表作为输入,经过逻辑查询处理,返回一个表结果。SQL Server支持四个表运算符:JOIN、APPLY、PIVOT、UNPIVOT...

864

扫码关注云+社区