Windows编程有时会因为调用函数而产生错误,调用GetLastError()函数可以得到错误代码.如果错误代码为0,说明没有错误:如果错误代码不为0,则说明存在错误. 而错误代码不方便编程人员或用户直观理解到底发生了什么错误.Visual Studio 2015(或之前的版本)提供了“错误查找”的外部工具,输入错误代码即可以查看到底发生了什么错误. 如果想在程序代码中查看错误代码对应的错误信息,可以编写如下函数来实现: #include<iostream> #include<Wind…
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { _wsetlocale(LC_ALL, L"chs"); //支持中文本地化 TCHAR szBuffer[] = { TEXT('-'),TEXT('-'),TEXT('-'),TEXT('-'),TEXT('-'), TEXT('-'),TEXT('-'…
第一章-对程序错误的处理 在开始介绍Microsoft Windows 的特性之前,必须首先了解 Wi n d o w s的各个函数是如何进行错误处理的. 当调用一个Wi n d o w s函数时,它首先要检验传递给它的的各个参数的有效性,然后再设法执行任务.如果传递了一个无效参数,或者由于某种原因无法执行这项操作,那么操作系统就会返回一个值,指明该函数在某种程度上运行失败了.表 1 - 1列出了大多数Wi n d o w s函数使用的返回值的数据类型. 一个Wi n d o w s函数返回的错…
WinSDK是编程中的传统难点,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制…… WinSDK是编程中的传统难点,曾经听有一个技术不是很好的朋友乱说什么给你API谁都会用,其实并非那么简单,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制. 首先来谈谈句柄,初学习WinSDK的朋友刚看到这个词头大了吧?…
最近刚入门SDK编程,在 我终于知道为什么windowsApi学的人这么少了 这篇文章中,确实发现了这样的问题,我的教程使用VS2013->Windows桌面->win32,就诞生了能使用WinMain()的接口的Windows程序.而换成VS2017来编译,却发现问题不止这里 首先,参考某些资料得到VS2017创建win32项目的步骤 Step1,Windows桌面->Windows桌面向导(我取消了右下角“为解决方案创建项目”) S2,取消复选框“预编译标头”和“安全开发生命周期SD…
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 lpCmdLin…
GetLastError: GetLastError返回错误编码,即便出错函数后边跟随一个正确执行了的函数,也不会覆盖原先的错误代码: 考虑多线程的情况.子线程中的错误代码不会被主线程捕获: 但是子函数中发生的错误代码会被主函数捕获:…
和可执行文件一样,动态链接库也有自己的入口地址,如果系统或者当前进程的某个线程调用LoadLibrary函数加载或者使用FreeLibrary卸载该动态链接库的时候,会自动使用3个特定的堆栈参数跳转到该地址来运行.入口函数是为了完成动态链接库代码的初始化和善后工作,比如卸载后的资源释放. 这三个参数具有特殊的含义. BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) 第一个参数…
Windows 工作原理的中心思想就是“动态链接”概念.Windows 自身带有一大套函数,应用程序就是通过调用这些函数 来实现它的用户界面和在屏幕上显示文本和图形的.这些函数都是在动态链接库里实现的. 这些文件的名称都带有后缀 .dll,或有时带有 .exe. Windows 的 3 个主要子系统:内核(kernel),用户(user),GDI. 内核 负责操作系统的传统工作:如 内存管理,文件输入/输出 以及任务管理等. 用户 指的是用户界面,负责所有的窗口管理. GDI 就是图形设备接口,…
## #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//回调函数; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wndclass;//窗口类; MSG msg; wndclass.style = CS_HREDRAW | CS_VREDR…