⑴ C语言编程,windows,sdk,,中实现fopen读取多行问题
文本框请添加 multiline风格 文本框是以\r\n为换行的
建议你用二进制方式读取文本.......
⑵ 纯C语言SDK编程有哪些应用领域、、
你好 我是一名大三的学生 我学习的顺序是 C C++ MFC 如果你想以后有更好的发展 你又不想过多的接触面向对象编程 我建议你学习MTK 也就是C嵌入式 纯C语言 功能很强大 一本书在手就能对着学了 技术一般的话 年薪估计在10W吧
⑶ C语言SDK程序中的代码怎么理解
BITMAPINFO是BMP文件信息,RGBQUAD是调色板,都定义在wingdi.h。详细可看我以前总结的BMP格式说明:
- 位图(BMP)的格式
位图有1位位图(单色)、4位位图(16色)、8位位图(256色)、16位位图()、24位位图(真彩色)、32位位图()。他们都符合同样的结构。
- 总结构
- 文件头 // 1个,14个字节
- 位图信息头 // 1个,40个字节
- 调色板信息 // 可选部分,对于24位位图是没有的
- 数据区
- 文件头
用于描述整个bmp文件的情况。结构如下:
typedef struct tagBITMAPFILEHEADER // 14个字节
{
unsigned short bfType; // 一定是"BM",也就是0x4D42,表示这是一个BMP文件
unsigned long bfSize; // 整个文件的字节数
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned long bfOffBits; // 位图的数据区离文件头的偏移量,以字节为单位。该值可能是54(24位,16位555),70(16位565),1078(8位),118(4位),62(1位)
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
- 位图信息头
用于描述整个位图文件的情况。
typedef struct tagBITMAPINFOHEADER // 40个字节
{
unsigned long biSize; // 本结构的大小,一定是40
long biWidth; // 位图的宽(单位:像素)
long biHeight; // 位图的高(单位:像素)
unsigned short biPlanes; // 恒为1
unsigned short biBitCount; // 位图的位数,可取值为1 4 8 16 24 32
unsigned long biCompression; // 16位位图的格式。可取值BI_RGB(0)或BI_BITFIELDS(3)。对于非16位位图,取值BI_RGB;对16位位图,取值BI_RGB表示是555格式;取值BI_BITFIELDS则表示可能是555也可能是565,具体根据掩码判断。
unsigned long biSizeImage; // 数据区大小。biSizeImage+bfOffBits==文件大小
long biXPelsPerMeter; // 通常为0
long biYPelsPerMeter; // 通常为0
unsigned long biClrUsed; // 本图像实际使用的颜色数目。为0表示用到颜色数目为2^biBitCount
unsigned long biClrImportant; // 本图像中重要颜色的数目。为0表示所有颜色都是重要的
} BITMAPINFOHEADER;
- 调色板信息(可选部分)
- 对于24位位图是没有的,对于8位位图则存放调色板,16与32位位图则存放RGB颜色的掩码,这些掩码以DWORD大小来存放。
- 8位:调色板
有1024字节的调色板区。一共有256个调色板元素,每个4字节。
数据区中用8位存储的1个像素,取值范围是0~255,其实存储的就是调色板中index。
一个调色板,4个字节,是1个RGBQUAD结构体,存储的是gbr,正好和颜色的rgb相反。
- 16位的555:
如果biCompression==BI_RGB,没有掩码区。如果biCompression==BI_BITFIELDS,则有16个字节的掩码区。
前3个DWORD,分别是RGB的掩码,后1个DWORD为0.
555格式为:xrrrrrgggggbbbbb。意思是说,1个像素用16位表示,第一位不用,然后连续5位是r,连续5位是g,连续5位是b
用掩码可以判断是否是555。
- 16位的565:16个字节的掩码区
有16个字节的掩码区。
前3个DWORD,分别是RGB的掩码,后1个DWORD为0.
00 f8 00 00 e0 07 00 00 1f 00 00 00 00 00 00 00
R掩码:00 f8 00 00
G掩码:e0 07 00 00
B掩码:1f 00 00 00
565格式为:rrrrrggggggbbbbb。意思是说,1个像素用16位表示,连续5位是r,连续6位是g,连续5位是b
用R或G的掩码,可以判断当前16位是565还是555。例如用R掩码来判断:
R掩码 == f800 == 1111100000000000,头5位是1,表示是565。如果R掩码 == 0111110000000000,则表示是555。
- 数据区
- 按行存储像素。例如一个row*col的数据,首先存储第1行,再存储第2行,...,最后存储第row行
- 而且每行的数据是按4字节对齐的。如果一行的数据不足4字节,则以0在后面补齐。
⑷ SDK是属于C语言范围吗
不属于,它与目的相关,是某种应用为C语言提供的接口,有了这个接口,你就可以用C语言的格式调用相应函数,实现目的功能。比如DIRECTX sdk
⑸ 请介绍一本教C语言的windows SDK编程的入门书
《windows 程序设计(第五版)》--这一本如果你英文好的话可以买人民邮电出版社的,是英文版的,不过较贵,总价168元。分上下两册。里面详细用C语言讲述了SDK编程和一些API的调用。中文版的话有北大翻译的《windows程序设计》,这个有盗版的卖,大概50元左右。
《windows核心编程》既有中文版也有英文版,正版盗版都有。
⑹ C语言如何API编程
1、windows平台提供的api平台,只要开发平台支持api接口,一律都支持,并且效果一样,不区分语言,好多开发平台的内置控件及类和函数都是调用了api。
2、应用程序编程接口,简称API(Application Programming Interface),就是软件系统不同组成部分衔接的约定。
随着软件规模的日益庞大,我们需要把复杂系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。 A reference implementation of an API is the implementation created by the designer of the API, or one which other implementations of the API are expected to be compared against.
例如,图形库中的一组API定义调用绘制图标函数的方式,以于屏幕上显示图标。程序中调用,编译时连接到这组API,执行时便调用API的实现(库)来显示图标。
操作系统的API可用来分配内存或访问文件。许多系统与应用程序提供API接口与实现,比如图形系统,数据库,网络,Web服务,甚至于某些游戏。
一组API经常是一套软件开发工具包(SDK)的一部分。SDK亦可包含其它工具亦或至于硬件,两个术语并不完全等同.
API有诸多不同设计。用于快速执行的接口通常包括函数,常量,变量与数据结构。也有其它方式,如通过解释器,或是提供抽象层以遮蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。
⑺ C语言SDK编程
public class convertToOx extends Frame implements ActionListener{
Label ox; //显示结果的标签
TextField input; //输入文本框
public convertToOx(){
super("二进制转十进制"); //定义窗体的标题
dec=new Label("字符");
input=new TextField(20);
Button convert=new Button("转换"); //转换按钮
setLayout(new FlowLayout()); //制定按流式布局排布控件
add(input);
add(convert);
add(ox);
convert.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String s=input.getText(); //获取文本框的输入字符串
int x=Integer.parseInt(s,16); //按十六进制分析字符串
ox.setText("结果="+x); //将分析后的十进制结果显示在标签处
}
public static void main(String args[]){
Frame x=new convertToOx();
x.setSize(450,150); //设置窗体大小
x.setVisible(true); //让窗体可见
}
}
⑻ C语言_SDK_ComboBox
需要看 WIN API SDK。 而且 C# 需要自己声明。 随便找了一些给你参考。 WM_NULL = $0000;WM_CREATE = $0001;应用程序创建一个窗口WM_DESTROY = $0002;一个窗口被销毁WM_MOVE = $0003;移动一个窗口WM_SIZE = $0005;改变一个窗口的大小WM_ACTIVATE = $0006;一个窗口被激活或失去激活状态;WM_SETFOCUS = $0007;获得焦点后WM_KILLFOCUS = $0008;失去焦点WM_ENABLE = $000A;改变enable状态WM_SETREDRAW = $000B;设置窗口是否能重画 WM_SETTEXT = $000C;应用程序发送此消息来设置一个窗口的文本WM_GETTEXT = $000D;应用程序发送此消息来复制对应窗口的文本到缓冲区WM_GETTEXTLENGTH = $000E;得到与一个窗口有关的文本的长度(不包含空字符)WM_PAINT = $000F;要求一个窗口重画自己WM_CLOSE = $0010;当一个窗口或应用程序要关闭时发送一个信号WM_QUERYENDSESSION = $0011;当用户选择结束对话框或程序自己调用ExitWindows函数WM_QUIT = $0012;用来结束程序运行或当程序调用postquitmessage函数WM_QUERYOPEN = $0013;当用户窗口恢复以前的大小位置时,把此消息发送给某个图标WM_ERASEBKGND = $0014;当窗口背景必须被擦除时(例在窗口改变大小时)WM_SYSCOLORCHANGE = $0015;当系统颜色改变时,发送此消息给所有顶级窗口WM_ENDSESSION = $0016;当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序,通知它对话是否结束WM_SYSTEMERROR = $0017;WM_SHOWWINDOW = $0018;当隐藏或显示窗口是发送此消息给这个窗口WM_ACTIVATEAPP = $001C;发此消息给应用程序哪个窗口是激活的,哪个是非激活的;WM_FONTCHANGE = $001D;当系统的字体资源库变化时发送此消息给所有顶级窗口WM_TIMECHANGE = $001E;当系统的时间变化时发送此消息给所有顶级窗口WM_CANCELMODE = $001F;发送此消息来取消某种正在进行的摸态(操作)WM_SETCURSOR = $0020;如果鼠标引起光标在某个窗口中移动且鼠标输入没有被捕获时,就发消息给某个窗口WM_MOUSEACTIVATE = $0021;当光标在某个非激活的窗口中而用户正按着鼠标的某个键发送此消息给当前窗口WM_CHILDACTIVATE = $0022;发送此消息给MDI子窗口当用户点击此窗口的标题栏,或当窗口被激活,移动,改变大小WM_QUEUESYNC = $0023;此消息由基于计算机的训练程序发送,通过WH_JOURNALPALYBACK的hook程序分离出用户输入消息WM_GETMINMAXINFO = $0024;此消息发送给窗口当它将要改变大小或位置;WM_PAINTICON= $0026;发送给最小化窗口当它图标将要被重画WM_ICONERASEBKGND = $0027; 此消息发送给某个最小化窗口,仅当它在画图标前它的背景必须被重画WM_NEXTDLGCTL = $0028;发送此消息给一个对话框程序去更改焦点位置WM_SPOOLERSTATUS = $002A;每当打印管理列队增加或减少一条作业时发出此消息WM_DRAWITEM = $002B; 当button,combobox,listbox,menu的可视外观改变时发送此消息给 这些控件的所有者WM_MEASUREITEM = $002C;当button, combo box, list box, list view control, or menu item 被创建时发送此消息给控件的所有者WM_DELETEITEM = $002D;当the list box 或 combo box 被销毁 或 当 某些项被删除通过LB_DELETESTRING,
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la