C语言编写的怎么都是命令控制台程序
大一,一个学期过去了,学了C语言,用的是谭浩强的C语言程序设计,准备下学期学c++,怎么现在用c编写的程序怎么都是命令控制台程序,要编写图形用户界面的程序,需要看学习哪些...
大一,一个学期过去了,学了 C语言 , 用的是谭浩强的C语言程序设计,准备下学期学c++,怎么现在用c编写的程序怎么都是命令控制台程序,要编写图形用户界面的程序,需要看学习哪些知识,要看哪些书籍?,前提我能看懂。。
展开
7个回答
展开全部
1、控制台程序是基础,有基础了写图形界面的程序就很简单了。学完C++了学windows编程、MFC什么的,到时候就是图形界面了。
2、图形界面需要些SDK的知识,windows的实现中基本上都是用的C语言,其各种接口基本上都是原生C语言函数,具体比如SDK用的windows API。
使用纯C语言编写windows程序,工作量将会相当大,下面是一个小例子:
/*
* This is a simple windows program, it does nothing but draw an ellipse.
* Windows SDK, Win32 API ,Pure C, (Not C++ or MFC !!)
* Suxpert at gmail dot com, 2008/8/24
* */
#include <windows.h>
LONG WINAPI WndProc( HWND, UINT, WPARAM, LPARAM );
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow ){
/* The Entry for windows program, just like main() in dos */
WNDCLASS wc;
HWND hwnd;
MSG msg;
wc.style = 0; // Class style
wc.lpfnWndProc = (WNDPROC)WndProc; // Window procedure address
wc.cbClsExtra = 0; // Class extra bytes
wc.cbWndExtra = 0; // Window extra bytes
wc.hInstance = hInstance; // Instance handle
wc.hIcon = LoadIcon( NULL, IDI_WINLOGO ); // Icon handle
wc.hCursor = LoadCursor( NULL, IDC_ARROW ); // Cursor handle
wc.hbrBackground = (HBRUSH)( COLOR_WINDOW + 1 ); // Background color
wc.lpszMenuName = NULL; // Menu name
wc.lpszClassName = "WinSDKtest"; // WNDCLASS name
RegisterClass( &wc );
hwnd = CreateWindow (
"WinSDKtest", // WNDCLASS name
"SDK Application", // Window title
WS_OVERLAPPEDWINDOW, // Window style
CW_USEDEFAULT, // Horizontal position
CW_USEDEFAULT, // Vertical position
CW_USEDEFAULT, // Initial width
CW_USEDEFAULT, // Initial height
HWND_DESKTOP, // Handle of parent window
NULL, // Menu handle
hInstance, // Application's instance handle
NULL // Window-creation data
);
ShowWindow( hwnd, nCmdShow );
UpdateWindow( hwnd );
while ( GetMessage( &msg, NULL, 0, 0 ) ) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam,
LPARAM lParam )
{
/* Windows will call this function anytime... */
PAINTSTRUCT ps;
HDC hdc;
switch(message){
case WM_PAINT:
hdc = BeginPaint( hwnd, &ps );
Ellipse( hdc, 0, 0, 800, 600 );
// Here we Draw an ellipse in the window of our program
EndPaint( hwnd, &ps );
break; // Someone like to write return here.
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc( hwnd, message, wParam, lParam );
}
return 0;
}
基本过程就是直接调用windows提供的API函数,完成从窗口创建,显示等界面功能到深层的文件操作,注册表等甚至windows内核调试等高级功能。
展开全部
因为C语言刚出现时的操作系统和应用程序都是控制台的。当时人们用C语言开发出大量的控制台程序并安装到系统上,就像现在我们安装界面程序到界面系统上一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把C语言基本打好。然后学C++。用VC6就可以编图形用户界面了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
控制台程序是基础,有基础了写图形界面的程序就很简单了。
你看你现在用的VC6不也只是会用其中的一小部分吗?
学完C++了学windows编程、MFC什么的,到时候就是图形界面了。
别着急,慢慢来。
现在没学数据库、计算机网络,就算编出来图形界面的程序也只是空壳,没用。
你看你现在用的VC6不也只是会用其中的一小部分吗?
学完C++了学windows编程、MFC什么的,到时候就是图形界面了。
别着急,慢慢来。
现在没学数据库、计算机网络,就算编出来图形界面的程序也只是空壳,没用。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
希望你能看到,也好好学习C语言,我也是带着这个疑问过来的,C可以说比较底层的语言了,你所看到的窗口程序都算是,高级方式编写出来的产物,路子其实是走窄了。
举个Win32界面编程的例子,都是C语言通过宏定义,编织出来的各种结构体(C++又称为类,增加了点功能),大量的封装结构组装起来C++面向对象的编程语言。其实越高级模块化的程度越高,还有比如API其实就是字典,一系列功能的封装,然后就是通过各种的调用,实现你想要的功能。
你想创建窗口是吧,你百度一下用DialogBox();用这个API写一个窗口,然后你会发现,其实它仅仅就是为了满足人的操作和观察习惯,背后就是要用你C的思想把动作和功能串联起来的过程。
举个Win32界面编程的例子,都是C语言通过宏定义,编织出来的各种结构体(C++又称为类,增加了点功能),大量的封装结构组装起来C++面向对象的编程语言。其实越高级模块化的程度越高,还有比如API其实就是字典,一系列功能的封装,然后就是通过各种的调用,实现你想要的功能。
你想创建窗口是吧,你百度一下用DialogBox();用这个API写一个窗口,然后你会发现,其实它仅仅就是为了满足人的操作和观察习惯,背后就是要用你C的思想把动作和功能串联起来的过程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询