c语言sdk
Ⅰ SDK是属于C语言范围吗
不属于,它与目的相关,是某种应用为C语言提供的接口,有了这个接口,你就可以用C语言的格式调用相应函数,实现目的功能。比如DIRECTX sdk
Ⅱ C语言写的SDK程序中COLORREF类型数组比较的问题!!
COLORREF X[3];
COLORREF Y[3];
memcmp((char*)X,(char*)Y,sizeof(COLORREF)*3);
Ⅲ C语言_WIN32_SDK_OpenFile()&&ReadFile()
~千万别吐MSDN,那玩意儿用处大了......
第10行,if(hFile=(HANDLE)HFILE_ERROR)
要改成:if(hFile==(HANDLE)HFILE_ERROR)
=是赋值,==才是测试相塌瞎等(低级错误呦~)
ReadFile()函数原型为:
BOOL ReadFile(HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped);
hFile是文件句柄
lpBuffer是缓冲区(接收读取的数据)
nNumberOfBytesToRead是读取的字节吵姿数
lpNumberOfBytesRead用来接收实际升衫绝读取的字节数
lpOverlapped定义异步操作,一般设为NULL
Ⅳ 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语言 Win32 SDK创建MDI的问题
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR Lines,int ShowMode)
{
WNDCLASS Wndclass;
MSG msg;
hInst=hInstance;
Wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
Wndclass.hInstance=hInstance;
Wndclass.hbrBackground=(HBRUSH)(COLOR_APPWORKSPACE+1);
Wndclass.cbWndExtra=0;
Wndclass.cbClsExtra=0;
Wndclass.lpszMenuName=NULL;
Wndclass.style=CS_HREDRAW|CS_VREDRAW;
Wndclass.lpszClassName=TEXT("Main");
Wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
Wndclass.lpfnWndProc=WndProc;
RegisterClass(&Wndclass);
Wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
/*Wndclass.lpszClassName=TEXT("MDI");
Wndclass.lpfnWndProc=MDIProc;
RegisterClass(&Wndclass);*/
Wndclass.lpszClassName=TEXT("MDIChild");
Wndclass.lpfnWndProc=MDIChildP;
RegisterClass(&Wndclass);
HWND Main=CreateWindow(TEXT("Main"),TEXT("MDI DEMO"),WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
UpdateWindow(Main);
ShowWindow(Main,ShowMode);
while(GetMessage(&msg,Main,NULL,NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
static MDICREATESTRUCT mdiwindow;
static CLIENTCREATESTRUCT MDIClient;
switch(msg)
{
case WM_CREATE:
MDIClient.idFirstChild=50000;
MDIClient.hWindowMenu=NULL;
hMDIClient=CreateWindowEx(0,TEXT("MDICLIENT"),TEXT("MDI"),
WS_CHILD|WS_CLIPCHILDREN|WS_VISIBLE,
0,0,
0,0,
hwnd,(HMENU)1,hInst,&MDIClient);
mdiwindow.szClass=TEXT("MDIChild");
mdiwindow.szTitle=TEXT("MDI");
mdiwindow.hOwner=hInst;
mdiwindow.style=0;
mdiwindow.cx=CW_USEDEFAULT;
mdiwindow.cy=CW_USEDEFAULT;
mdiwindow.x=0;
mdiwindow.y=0;
mdiwindow.lParam=0;
SendMessage(hMDIClient,WM_MDICREATE,0,(LPARAM)(LPMDICREATESTRUCT)&mdiwindow);
return 0;
case WM_LBUTTONDOWN:
SendMessage(hMDIClient,WM_MDICREATE,0,(LPARAM)(LPMDICREATESTRUCT)&mdiwindow);
return 0;
case WM_CLOSE:
PostQuitMessage(0);
return 0;
}
return DefFrameProc(hwnd,hMDIClient,msg,wParam,lParam);
}
LRESULT CALLBACK MDIChildP(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
}
return DefMDIChildProc(hwnd ,msg,wParam,lParam);
}
Ⅵ 纯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在后面补齐。
Ⅷ C语言SDK程序哪里错了
看不出来。
最好能把全代码给出,跟踪一下。
Ⅸ 汇编语言可以对硬件直接进行操作是什么意思 C语言可以吗
因所有语言都最后要转换成机器码,因计算机只会按这缺行机器码进行运行,宽扮轮而汇编语言就是这机器码的助记符(帮助记忆的符号),所以它就是直接可操作机器的语言。C语言是一慎信种中级语言,它也可进行机器的直接操作,只是还要经过一些设置或转换才行。
Ⅹ C语言编程,windows,sdk,,中实现fopen读取多行问题
文本框请添加 multiline风格 文本框是野芹信以\r\n为换行的
建颂轮议你用二进制方式读取首搜文本.......