SDK(1.1note)

news2024/9/23 17:12:46

什么是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.coloradmin.cn/o/2158054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

摒弃“流量思维”,以精准流量驱动企业发展——基于开源 AI 智能名片、链动 2+1 模式及 O2O 商城小程序的思考

摘要&#xff1a;本文深入探讨在当前竞争激烈的营销环境下&#xff0c;摒弃“流量思维”的紧迫性与必要性。强调做内容营销不能仅仅局限于发文案&#xff0c;而应摆脱一味追求阅读量、推荐量和粉丝数的误区&#xff0c;聚焦于获取精准流量。结合开源 AI 智能名片、链动 21 模式…

如何解决npm下载Puppeteer卡死的问题

亲测有效 export PUPPETEER_DOWNLOAD_BASE_URLhttps://cdn.npmmirror.com/binaries/chrome-for-testingnpm install https://github.com/cnpm/binary-mirror-config/pull/47https://github.com/cnpm/binary-mirror-config/pull/47 PS: 最开始看了下面这两个链接&#xff0c…

网络安全-长亭雷池的sql绕过

一、环境 雷池官网docker安装我的版本是 看官网介绍主要防御top10 二、讲解 我这里只描述通用型绕过&#xff0c;对于事件型不多描述&#xff0c;因为通用型的绕过是通杀的&#xff0c;差异化绕过 正常来说我们是因为没有一个很好的过滤所以造成第11关靶场的绕过 但是现在有了…

Stable Diffusion进阶篇:模型训练(附秋叶模型训练器)

前言 今天就来学习下Stable Diffusion关于微调训练方面的知识点。 今天没多少废话&#xff0c;因为我下午要去玩PTCG&#xff01;让我们冲冲冲 整理和输出教程属实不易&#xff0c;觉得这篇教程对你有所帮助的话&#xff0c;可以点击&#x1f447;二维码领取资料&#x1f618…

k8s介绍-搭建k8s

官网&#xff1a;https://kubernetes.io/ 应用部署方式演变 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其他技术的参与 缺点&#xff1a;不能为应用程序定义资源使用边界&#xff0c;很难合理地分配计…

Active Directory 实验室设置第二部分- 添加数据到AD域

在之前的文章中&#xff0c;我们已经讨论了AD森林的安装和AD基础知识。在这篇文章中&#xff0c;让我们开始使用 AD 对象&#xff08;如用户对象、计算机对象、组对象、网络共享等&#xff09;填充 AD 环境&#xff0c;以及计算机如何加入域。 #1、添加用户对象 可以使用GUI、…

什么是CPQ?一文讲解什么是CPQ选型配置报价系统

什么是CPQ选型配置报价? CPQ&#xff0c;是英文名 Configure Price Quote的缩写&#xff0c;中文称为配置报价软件。该软件经常出现在销售行业。它是一种可以快速为企业报价的销售工具。企业在报价时&#xff0c;会综合考虑数量、折扣、产品可选功能等。CPQ软件能够整合企业的…

Linux学习之路 -- 线程 -- 互斥

目录 1、概念引入 2、互斥锁 1、pthread_mutex_init && pthread_ mutex_destory 2、pthread_mutex_lock && pthread_mutex_unlock 3、互斥锁原理的简单介绍 1、概念引入 为了介绍线程的同步与互斥&#xff0c;我们以抢票逻辑引入相关的概念。 示例代码…

harmonyOS 原来构建还有这么多弯弯绕绕

随着用户需求的不断增长&#xff0c;我们的 APP 已发展成功能丰富的超级APP&#xff0c;这也导致打包构建变得非常耗时&#xff0c;可能需要数小时&#xff0c;严重影响开发效率和产品迭代。通过采用模块化设计、增量构建、并行处理、缓存机制、优化依赖管理&#xff0c;以及云…

SSM整合步骤

目录 一、Mybatis整合Spring 1、整合后的maven坐标 2、核心配置文件 3、pojo、mapper、service配置 4、单测 二、整合SpringMVC 1、引入springMVC的坐标并配置tomcat 2、核心配置文件 3、controller配置 4、启动项目并测试 SSM SpringMVC Spring Mybatis 整合顺序&#xff1…

Spring AOP - 注解方式实现

前文已经讨论了基于配置文件方式实现Spring AOP&#xff08;Spring AOP - 配置文件方式实现&#xff09;&#xff0c;本文采用注解的方式实现前文相同的功能。配置步骤如下&#xff1a; 1、项目增加aop依赖&#xff08;pom.xml) <dependency><groupId>org.springfr…

大数据:快速入门Scala+Flink

一、什么是Scala Scala 是一种多范式编程语言&#xff0c;它结合了面向对象编程和函数式编程的特性。Scala 这个名字是“可扩展语言”&#xff08;Scalable Language&#xff09;的缩写&#xff0c;意味着它被设计为能够适应不同规模的项目&#xff0c;从小型脚本到大型分布式…

vue2 中使用 Tinymce 富文本编辑器详解

vue2.x使用Tinymce富文本 项目中Tinymce效果图安装依赖包/创建依赖文件创建skins文件夹汉化文件-zh_CN.js 封装组件Tinymce.vue组件中使用封装组件tinymce.vueTinymce 扩展插件集合 项目中Tinymce效果图 如果想先了解一下&#xff0c;可以浏览一博主整理的的TinyMCE中文文档&am…

【揭秘大脑与AI的鸿沟:电化学信号与非线性动态交互的奥秘】

目录 【揭秘大脑与AI的鸿沟:电化学信号与非线性动态交互的奥秘】 1. 信息传递的奇迹:电化学信号的奥秘 2. 非线性动态交互:大脑的智慧之源 3. 结构与功能的鸿沟:从并行分布到有限层次 结语:探索未知的边界 【揭秘大脑与AI的鸿沟:电化学信号与非线性动态交互的奥秘】…

【深度学习】【TensorRT】【C++】模型转化、环境搭建以及模型部署的详细教程

【深度学习】【TensorRT】【C】模型转化、环境搭建以及模型部署的详细教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【TensorRT】【C】模型转化、环境搭建以及模型部署的详细教程前言模型转换--pytorch转engineWindows平台搭…

[C#]winform 使用opencvsharp实现玉米粒计数

【算法介绍】 这段代码是使用OpenCvSharp库&#xff08;OpenCV的C#封装&#xff09;对图像进行处理&#xff0c;主要流程包括图像的二值化、腐蚀操作、距离变换、轮廓检测&#xff0c;并在原图上标出检测到的轮廓位置及数量。下面是对代码的详细解读&#xff1a; 初始化&…

网络通信——路由器、交换机、集线器(HUB)

注意&#xff1a;传输层&#xff0c;应用层没有网路设备 一.路由器&#xff08;网络层设备&#xff09; 1.分割广播域 2.一个接口就是一个广播域 3.一般接口位4&#xff0c;8&#xff0c;12。 4.数据转发 &#xff08;由路由表转发数据&#xff09; 5.根据路由表来进行路径选…

基于微信小程序的美食外卖管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

面试速通宝典——1

1. 内存有哪几种类型&#xff1f; ‌‌‌‌  内存分为五个区&#xff0c;堆&#xff08;malloc&#xff09;、栈&#xff08;如局部变量、函数参数&#xff09;、程序代码区&#xff08;存放二进制代码&#xff09;、全局/静态存储区&#xff08;全局变量、static变量&#…

米壳AI:自媒体如何获取高清原画质!真8K视频是这样下载的!

作为一名新手自媒体博主&#xff0c;你是不是也在各种短视频平台上疯狂搜索保存外网视频的方法和软件呢&#xff1f;&#x1f603;然而&#xff0c;真正能下载真 4K 视频的却寥寥无几。 别苦恼啦&#xff01;今天我就来给大家分享一个小编亲测过后真实好用的工具 —— 米壳 AI。…