C语言只能写控制台程序?

如题我这本教程到最后貌似还是控制台程序... 如题 我这本教程到最后貌似还是控制台程序 展开
 我来答
金鱼8884
推荐于2016-08-12 · 知道合伙人数码行家
金鱼8884
知道合伙人数码行家
采纳数:124 获赞数:14950
学生

向TA提问 私信TA
展开全部

  不是。

  C语言还可以写编写WINDOWS 应用程序。

  需要些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内核调试等高级功能。‍

GodHlpMe
2013-07-09 · TA获得超过8456个赞
知道大有可为答主
回答量:4600
采纳率:46%
帮助的人:1007万
展开全部
标准C语言就是控制台程序,
那你重新选WINDOWS的C++程序,如VC++或C++BUILDER,
特别是C++BUILDER是可视化的C++,象VB类似的,比VC++
编程方便多了。
追问
就是说 要想有界面 只有C++   C++的基础就是C语言?
追答
对,增加了面向对象。C++ 学完了,再找一个WINDOWS版的C++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0bf2197
2013-07-09 · TA获得超过943个赞
知道小有建树答主
回答量:596
采纳率:50%
帮助的人:106万
展开全部
当然不是。
很多大程序都是C语言写的。因为c比较底层。

很多教程书都是控制台程序作为入门。你可以看一看进阶的书。就知道了。
追问
C语言的进阶就是C++吧?
追答
c语言是面向过程的。c++是面向对象的。
我的理解是进阶的,不知道对不对。
你学完C++就会有理解的。对于过程语言c,c++有更多的优势,可以依托c++很容易写出windows框体程序。你百度下MFC了解下这个。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiyangbdwk
2013-07-09 · TA获得超过3295个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4396万
展开全部

请参见《windows程序设计》

见附件,里面大多数示例可以直接复制运行。

追问

亲 没内容啊

追答
我这里是有的,也许你的浏览器禁用了javascript之类的,那本书很容易就下载到的。
http://ishare.iask.sina.com.cn/f/5288367.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
南辞萌萌哒56
2024-07-24
知道答主
回答量:3
采纳率:0%
帮助的人:552
展开全部

可以学Windows API,加入这个头文件#include<Windows.h>。最简单的例如:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式