很多年前学过C++,但没有怎么使用过。最近有时间,准备重新学起来,以便可以编写自己喜欢的程序。
关于C++编译器,讨论文章已经很多。详细对比的文章也很多,我只是说说我一个初学者的感受。
就我自己而言,当初上学时用的是TC 2.0,DOS时代的C C++编译利器,时代过于久远,除了练习C以外,不知道还能做什么。网上还有可以运行在win 7下的TC 自制版。
VC++,VC++.net 有点庞大,自动生成的代码难以阅读理解。
Code Blocks 也用过,不是很方便。
codelite 使用过,按各个教程配置起来,总是无法编译,一闪而过,卸载换了个版本,仍然如此,看着好像是没有出错的编译完了,但exe 全盘找不到,算了,不折腾了。
最后,找到了DevC++ 6.5版,用起来特别方便,单个文章也能直接编译,不用建项目,对于初学者来说,运行个书上网上的例子特别方便,没有自动生成的那些乱七八糟看不懂的东西。
后来才知道,原来Dev C++ 版本到了5.11后,官方已经放弃了,是中国两位大学老师,教C++的,为了教学,他们接手了 Dev-C++ 的继续更新和开发,做了很多修复和优化工作。这些优化对于初学者很友好,非常适合中国学生练习使用。
熊猫 Dev-C++ 的开发者royqh1979 和 Anbang24,两位都是是教师。
我用的是最新版的。6.5 上图。
自己练了几个类似HelloWorld的程序后,试了试能不能用Dev C++开发windows程序,原来,还真的可以,但所有的界面都要使用win32 api 手写。
用搜索大法,完成了这样一个比较简单的界面。
想分析网址,http的比较简单,但https的就比较麻烦。目前只是设计出了界面。
贴几行代码。
HFONT hf = CreateFont( 16, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_BOLD, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
DEFAULT_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
TEXT( "微软雅黑"));
switch (message) {
case WM_CREATE:
hwndButton = CreateWindow ( TEXT("button"), TEXT("分析链接"),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
680, 60,
75, 23,
hwnd, (HMENU)IDcmdButton, ((LPCREATESTRUCT) lParam)->hInstance, NULL);
if (!hwndButton) MessageBox(NULL,"创建按钮失败","Message",MB_OK|MB_ICONERROR);
ShowWindow(hwndButton,SW_SHOW);
UpdateWindow(hwndButton);
hwndButton1 = CreateWindow ( TEXT("button"), TEXT("开始下载"),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
788, 481,
75, 23,
hwnd, (HMENU)IDcmdButton1, ((LPCREATESTRUCT) lParam)->hInstance, NULL);
if (!hwndButton1) MessageBox(NULL,"创建按钮失败","Message",MB_OK|MB_ICONERROR);
ShowWindow(hwndButton1,SW_SHOW);
UpdateWindow(hwndButton1);
hwndButton2 = CreateWindow ( TEXT("button"), TEXT("选择文件夹"),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
840, 391,
85, 23,
hwnd, (HMENU)IDcmdButton2, ((LPCREATESTRUCT) lParam)->hInstance, NULL);
if (!hwndButton2) MessageBox(NULL,"创建按钮失败","Message",MB_OK|MB_ICONERROR);
ShowWindow(hwndButton2,SW_SHOW);
UpdateWindow(hwndButton2);
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
// SetTextColor(hdc, RGB(255,0,0)); //可以用RGB三原色设置文本颜色
//SetBkColor(hdc,RGB(0,0,0)); 设置背景色。
SetTextColor(hdc, RGB(255, 0, 0));
TextOut(hdc,60,91,TEXT("实际有水印网址"),14);
TextOut(hdc,108,123,TEXT("Item_IDs"),8);
TextOut(hdc,351,196,TEXT("无水印视频播放地址"),18);
TextOut(hdc,351,277,TEXT("无水印视频真实地址"),18);
TextOut(hdc,50,391,TEXT("作者:"),6);