当前位置: 首页 > article >正文

SDK(1.1note)

什么是SDK

控制台程序(Console User interface)CUI
对于控制台程序,通用,也就是平台无关

图形界面系统

可是如果你想要播放一个音乐,C语言有嘛?

所以需要平台开发,不可以移植性

平台会提供函数,操作系统提供给软件的功能,而且提供的函数往往是超过库的

特别是游戏,openg l(游戏图形等标准化)dx

我们一般把系统给操作者的函数,叫API

API(头文件、库)

所以SDK(Software Development Kit)软件开发工具包, 把头文件、库等打包

比如你要写个windows的应用程序,第一步你得去下载SDK

现在得SDK现在集成在了VS

在这里插入图片描述

不同SDK的有什么差异?
如果你需要新的功能,所以更新添加,或者修改,修复bug

在这里插入图片描述
windows的sdk发一般都是在C盘下
在这里插入图片描述

https://learn.microsoft.com/zh-cn/windows/apps/
在这里插入图片描述https://learn.microsoft.com/zh-cn/visualstudio/windows/?view=vs-2022
在这里插入图片描述
在这里插入图片描述
当然sdk还有离线的文档,这里我没去找了

在这里插入图片描述
从操作系统的底层来说,都是用了W的版本

在这里插入图片描述在上图我们windows所有类型都被定义了,而且看到大多都是大写

简单来说,就是方便大家更新,也防止因为类型导致的程序报错

对于类型问题,同时也要少写对地址进行位移运算

#include <windows.h>
#include<tchar.h>
#include <stdio.h>
#include <strsafe.h>


int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
	TCHAR* lpCmdline, //命令行参数,LPSTR可能会变成Unicode
	int nCmdShow) {
	/*MessageBoxA(NULL, "hell word ", "asm", MB_YESNO);*/\
	int res = MessageBoxW(NULL, L"hell unicode", L"asm", MB_YESNO);
	DWORD error= GetLastError();//最后一次的错误码
	LPVOID lpMsgBuf;
	if (error != ERROR_SUCCESS) {
	/*	MessageBoxW(NULL, L"错误", L"asm", MB_OK);*/
		FormatMessage(
			FORMAT_MESSAGE_ALLOCATE_BUFFER |/*  分别为FORMAT_MESSAGE_ALLOCATE_BUFFER由函数分配输出缓冲区,
FORMAT_MESSAGE_FROM_SYSTEM表示程序将会在系统消息表资源中搜索所需消息,

FORMAT_MESSAGE_IGNORE_INSERTS程序将会忽略搜索到消息中的插入序列。  */
			FORMAT_MESSAGE_FROM_SYSTEM |
			FORMAT_MESSAGE_IGNORE_INSERTS,
			NULL,
			error,
			MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
			(LPTSTR)&lpMsgBuf,
			0, NULL);
		MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK|MB_ICONINFORMATION);

		LocalFree(lpMsgBuf);
		ExitProcess(error);
		return 0;

	}
	
	return 0;
}

http://www.kler.cn/a/321010.html

相关文章:

  • 图形 2.6 伽马校正
  • Springboot采用jasypt加密配置
  • 详解map与multimap容器
  • vue如何实现组件切换
  • Opengl光照测试
  • 从电动汽车到车载充电器:LM317LBDR2G 线性稳压器在汽车中的多场景应用
  • Qt/C++事件过滤器与控件响应重写的使用、场景的不同
  • 【ollama 在linux 上离线部署 本地大模型】
  • vue-animate-onscroll动画库(可来回触发动画)
  • Latex和Vscode安装和配置
  • 【Python】pip安装加速:使用国内镜像源
  • 华为---代理ARP简介及示例配置
  • 深度学习模型之BERT的24个小模型源码与预训练紧凑模型的重要性
  • c# 自定义字符串排序
  • Vue引入js脚本问题记录(附解决办法)
  • CAD 3dsmax maya等autodesk系列专用卸载修复工具AutoRemove,一键完全彻底卸载删除软件的专用卸载工具
  • jmeter性能测试---csv数据文件设置
  • Linux下线程间的通信
  • 11. Map和Set
  • java mybaits oracle插入返回主键
  • 9.26作业
  • Python中的文件编码:揭开字符世界的神秘面纱
  • 【HTTPS】—— HTTPS协议原理详解
  • 基于web的生产信息管理系统的设计与实现
  • netty编程之基于websocket发送二进制数据
  • 责任链模式实战