///////////////////////////////////////////////////////////
//1.Error
///////////////////////////////////////////////////////////
Windows的Error表示结构有三部分组成:
1.ID
2.MessageID
3.MessageText
Windows提供了一个API来显示MessageText
DWORD FormatMessage(
DWORD dwFlags, // source and processing options
LPCVOID lpSource, // pointer to message source
DWORD dwMessageId, // requested message identifier
DWORD dwLanguageId, // language identifier for requested message
LPTSTR lpBuffer, // pointer to message buffer
DWORD nSize, // maximum size of message buffer
va_list *Arguments // pointer to array of message inserts
);
当我们系统运行成功地时候并不能表示我们系统并没有Error,我们调用GetLastError()(
在调试错误的时候用此方法使用起来特别的爽)就可以知道我们系统是有我们未知的错误。
如果想自己定义个Error,可以用SetError()API.
///////////////////////////////////////////////////////////
//2.UNICODE
///////////////////////////////////////////////////////////
当我学了UNICODE这一部分内容才知道为啥Windows要自己定义一些鬼类型,比如说PCHAR,PSTR等等。这些类型都是为了兼容UNICODE用的,因为Windows2000以后的系统底层用的编码是UNICODE的,即使你在程序里面用的是ANSI类型,当Windows也会默认的给你加一个字节去处理按照UNICODE去运行,当运行完成后,在把UNICODE的转化成ANSI类型返回给应用系统。但是为了向后兼容Windows对于以前ANSI/UNICODE编码分别提供了对应的API,如我们最长见的CreateWindow API
#define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
#define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
#ifdef UNICODE
#define CreateWindow CreateWindowW
#else
#define CreateWindow CreateWindowA
#endif // !UNICODE
如果我们编译用的是UNICODE,将调用的是CreateWindowW(),如果是ANSI调用的是CreateWindowA()
Windows除了定义UNICODE这个宏以外还定义了,_TEXT()等宏。。
Windows系统中对于宏的应用可谓是出神入化,在MFC中RTTI等超NB的机制都是用宏来实现的,在这儿也就不详述了。
分享到:
相关推荐
window下 c++ 中 uft-8同 unicode 格式的互相转化,函数直接调用即可
window版本redis-6.2.14版本,支持32位和64位操作系统,使用Cygwin工具生成的EXE可执行文件
"Window-on-top"就是一个这样的第三方工具,它以绿色软件的形式存在,意味着它无需安装,下载后直接运行".exe"文件即可使用,不会在系统中留下冗余的注册表项或文件,易于管理和卸载。 使用"Window-on-top"时,用户...
在"window-finder-control-master.zip"这个压缩包中,包含了一个完整的项目示例,让我们一起深入探讨其中的技术细节和应用场景。 首先,"Window Finder Control"的核心功能是捕获窗口句柄。句柄是Windows系统中标识...
实现window系统下 类似 Linux 命令行 tail -f 功能.使用C#语言开发,占用资源小。如有问题可留言
在iOS 5中,Apple去掉了Window-Based-Application模板,如果是从之前的版本升级而来,如果需要Window-Based-Application,可以下载这个压缩包,解压成文件夹后,在Finder中,放在~/Library/Developer/Xcode 中,...
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
window-vmware-linux 虚拟机搭建及网络配置,亲测可用
tiny-patch4-window7-224-22kto1k-finetune”和描述“swin_tiny_patch4_window7_224_22kto1k_finetune”中提到的核心关键词是“Swin”,这通常指的是Swin Transformer,一个在计算机视觉领域广泛应用的深度学习模型...
窗口置顶工具window-on-top
二维窗口函数,包含汉宁窗,布莱克曼窗,契比雪夫窗等
JS关键字-window-document-console.log()
总结起来,"window-jdk-jdk1.6.0_06"是一个针对32位Windows系统的Java Development Kit,包含了开发和运行Java应用程序所需的各种工具和文件。开发者可以利用这个JDK来创建、编译、调试和运行Java代码,同时,通过...
多屏窗口放置演示 抽象的 这是提议的API 的基本演示。 可视化一组连接的显示器 ...$ cd window-placement-demo $ python -m SimpleHTTPServer & $ chrome --enable-blink-features=WindowPlacement --
window版node-v12.22.9安装包 直装版 简单的说 Node.js 就是运行在服务端的 JavaScript Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台
docker-compose-window-2.14.2.exe免费下载
Window对象 思维导图; 可以用MindManager 、XMind 、百度脑图打开;在这个的基础上面添加自己的理解,整理成自己的个人知识体系
WindowBuilder支持多种布局管理器,如FlowLayout、BorderLayout、GridLayout和GridBagLayout等,以及Swing和 SWT(标准小部件工具包)库中的各种组件。开发者可以通过这个工具轻松创建复杂的窗口应用,包括菜单、...
资源来自pypi官网。 资源全名:time_window-0.0.1-py3-none-any.whl