<!DOCTYPE html>
SDK编程
SDK =software develope kit,软件开放工具包,就是直接调用API编程。为了达到缩小程序体积的目的,不得不十分了解API函数。在上一篇《一些术语》提到过,当时对于API的了解还比较肤浅,现在详细讲讲。
和python的库有点像,import http
.h头文件和 .lib库,里面包含有我们需要的API函数。
把所需的头文件放在一起
g++ messagebox
命令编译,用a.exe运行。
MessageBox是包含在windows.h里的API函数。所谓函数,就是输入参数——调用函数——得到结果。至于函数怎么做到的,没有必要深究,除非需要自己写底层函数。
第三行,int指的是函数返回值是整型,括号里的 int argc, char *argv[],是形式参数。第五行括号里的是真正的参数。
该形式参数的意思是,输入参数为整型(1,2,3,4,5…… ),argc就是命令的个数,在这里就是4个。
*argv[ ]是个指针数组,存放输入在命令行上的命令(char字符串类型)。
恶作剧程序,源码
在c:\windows,下建立上万个txt文档。
编译命令第一次用的,g++ trick.cpp
第一次默认动态链接,程序成功编译,但无法在虚拟机上运行,大小44kb.
静态链接,程序大小256kb.
原来要静态连接,加参数 -static,成功编译,但是运行时候有黑色窗口。
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
书上说要加这句,但是加了之后反复尝试,还是有console窗口。突然发现书上用到编译器是微软的,而不是gcc。#pragma comment是给编译器命令。
加-mwindows 就可以了,点击a.exe后,发现程序显示等待(圆圈旋转),没有任何窗口显示了。