SDK编程

<!DOCTYPE html>

SDK编程

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后,发现程序显示等待(圆圈旋转),没有任何窗口显示了。