c++创建项目的时候那几个选项都是什么意思?

gamebooks 2008-10-18 03:25:00
c++创建项目的时候那几个选项都是什么意思?


有:控制台 WINDOWS窗口程序 静态库 DLL 等等?


能解释 一下码 ?
...全文
463 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuwanglove 2008-10-18
  • 打赏
  • 举报
回复
路过.
once_and_again 2008-10-18
  • 打赏
  • 举报
回复

1:设计窗口类
2:注册窗口类
3:创建窗口
4:显示窗口
5:消息循环,下面给你一个计算一元二次方程的例子:
太乙 2008-10-18
  • 打赏
  • 举报
回复
控制台-------就是你电脑->开始->运行->cmd出来的界面!以main为入口

WINDOWS窗口程序--------也就是什么窗口啊,对话框啊什么的!以winmain()为入口!其中mfc是常采用的框架!
静态库-----也就是生成.lib文件,可以在其他程序调用的!不能单独运行~
DLL-----相对于静态库来说的,也就是动态链接库!
帅得不敢出门 2008-10-18
  • 打赏
  • 举报
回复
这些VC书上有说吧 好好把书翻翻 也不要我到处贴资料了 呵呵
帅得不敢出门 2008-10-18
  • 打赏
  • 举报
回复
1=======控制台 就是生成的exe 显示结果的窗口是CMD
2=======WINDOWS窗口程序 有界面的程序 可以制作可视化窗口 比如我们用的QQ
http://zhidao.baidu.com/question/60823243.html
控制台程序有窗口,可以把值输出到窗口上,而application没有窗口,必须自己编写程序
做一个窗口,做窗口的主要过程就是:
1:设计窗口类
2:注册窗口类
3:创建窗口
4:显示窗口
5:消息循环,下面给你一个计算一元二次方程的例子:

#include<windows.h>
char lpszFilePath[MAX_PATH] = {0};
BROWSEINFO bi;
bi.hwndOwner = this->GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = lpszFilePath;
bi.lpszTitle = _T("请选择图片目录:");
bi.ulFlags = 0; //BIF_NEWDIALOGSTYLE;
bi.lpfn = NULL;
bi.lParam = NULL;
//SHBrowseForFolder:打开文件对话框
LPITEMIDLIST lpil = SHBrowseForFolder(&bi);
#include<math.h>
#include<stdio.h>
#include<iostream.h>
const double dboffset = 0.000001 ;
char str[80];
//求一元二次方程的根,函数返回根的个数
int GetRoot(float a ,float b ,float c,double *root)
{
double delta,deltasqrt ;
delta = b*b -4.0 * a *c ;
//判断delta是否为正数
if(delta -dboffset < 0.0) return 0 ; //无根
//开平方
deltasqrt = sqrt(delta) ;
if ((a - dboffset) > 0.0)
{
root[0] =(-b+deltasqrt)/(2 * a) ;
root[1] =( -b-deltasqrt)/(2 * a) ;
}
else
if ((a - dboffset) > 0.0)
root[0]=root[1]=-c/b;
else
return 0;

if(root[0] == root[1])
return 1 ;
else
return 2 ;

}
//声明窗口过程函数
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//程序入口函数
int WINAPI WinMain(HINSTANCE hInstance , //当前实例句柄
HINSTANCE hPreInstance , //以前的实例句柄
LPSTR lpCmdLine , //指向命令行参数的指针
int nCmdShow) //窗口的显示状态
{

//*************************************************************
HWND hwnd ; //窗口句柄
MSG msg ; //消息
WNDCLASS wndclass ; //窗口类
//设置窗口样式
wndclass.style =CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc =WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.hInstance =hInstance ;
wndclass.cbWndExtra = 0 ;
wndclass.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName ="HelloWin";
//注册窗口类
if (!RegisterClass (&wndclass))
{
MessageBox(NULL,"窗口注册失败","窗口注册失败",0);
return 0 ;
}
//创建窗口
hwnd = CreateWindow( "HelloWin", //窗口类名
"我的窗口", //窗口标题
WS_OVERLAPPEDWINDOW, //窗口样式
CW_USEDEFAULT, //窗口最初X位置
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口最初的X大小
CW_USEDEFAULT,
NULL, //父窗口的句柄
NULL, //窗口菜单句柄
hInstance, //应用程序实例句柄
NULL); //创建窗口的参数
//显示窗口
ShowWindow(hwnd,nCmdShow);
//更新窗口,包括窗口的客户区
UpdateWindow(hwnd);
//显示窗口
ShowWindow(hwnd,nCmdShow);
//更新窗口,包括窗口的客户区
UpdateWindow(hwnd);
//*************************************************************
//进入消息循环
while(GetMessage(&msg,NULL,0,0))
{
//翻译消息(例如转换某些键盘消息)
TranslateMessage(&msg);
//将消息发送给窗口过程,这里是WndProc
DispatchMessage(&msg);
}
return msg.wParam ;
}

//窗口过程函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
static HWND hwndButton ,hwndEdit[3] ;
char strEdit[80];
double root[2];
float a[3];
int i ;
switch(message)
{
//窗口创建产生的消息
case WM_CREATE:
//创建编辑框“edit”是windows内部定义的编辑框的窗口类名
hwndEdit[0] = CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,10,60,100,25,hwnd,NULL,NULL,NULL);
hwndEdit[1] = CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,120,60,100,25,hwnd,NULL,NULL,NULL);
hwndEdit[2] = CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,230,60,100,25,hwnd,NULL,NULL,NULL);
hwndButton = CreateWindow("button","计算",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,340,60,100,25,hwnd,NULL,NULL,NULL);
return 0 ;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,10,10,"请输入一元二次方程的系数",25);
TextOut(hdc,10,40,"a",1);
TextOut(hdc,120,40,"b",1);
TextOut(hdc,230,40,"c",1);
TextOut(hdc,10,90,str,strlen(str));
EndPaint(hwnd,&ps);
return 0 ;
case WM_DESTROY:
PostQuitMessage(0);
return 0 ;
case WM_LBUTTONDOWN:
MessageBox(NULL,"你好啊","问候",0);
return 0 ;
case WM_COMMAND:
//按下按钮
if(((HWND)lParam ==hwndButton) && (HIWORD(wParam) ==BN_CLICKED))
{
//获取3个编辑框内容,并将其转换成浮点数值
for(i = 0 ;i<3 ;i++)
{
GetWindowText(hwndEdit[i],strEdit,80);
a[i] = (float)atof(strEdit);
}
int n = GetRoot(a[0],a[1],a[2],root) ;
if (n<1)
strcpy(str,"方程无根");
else
sprintf(str,"方程的解为:%f,%f",root[0],root[1]);
InvalidateRect(hwnd,NULL,TRUE);
}
}
return DefWindowProc(hwnd,message,wParam,lParam);
}


3======================
后两个你说的是 静态库 动态库的问题吧
静态链接库与动态链接库的相同点:
1、共享代码;
2、代码封装;

静态链接库与动态链接库的区别:
1、静态链接库被包含在宿主程序中,而动态链接库则是在需要时动态地装载和卸载DLL文件;
2、静态链接库中不能再包含其它动态或者静态链接库,而动态链接库中则可再包含。


在VC中动态链接库如下分类:
Visual C++支持三种DLL,它们分别是Non-MFC DLL(非MFC动态库)、MFC Regular DLL(MFC规则DLL)、MFC Extension DLL(MFC扩展DLL)。
1、非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;
2、MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环;
3、MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用。

文章出处:http://www.diybl.com/course/3_program/c++/cppjs/2008331/107757.html

冻结 2008-10-18
  • 打赏
  • 举报
回复
控制台 基本等于以前DOS下运行的程序。
WINDOWS窗口程序 .NET 对C++ 的支持,可以编写托管代码。
DLL 动态链接库。
还有MFC,真正做应用程序用。

如果初学还是控制台开始吧!
cidao1971 2008-10-18
  • 打赏
  • 举报
回复
学到了:控制台一般是不带图形界面的命令行程序。
星羽 2008-10-18
  • 打赏
  • 举报
回复
控制台 一般是不带图形界面的命令行程序

WINDOWS窗口程序 就是一般的窗口程序咯,平时windows上的程序一般都是窗口程序,比如office 等

静态库 DLL 这连个你google一下就ok了
boys2002 2008-10-18
  • 打赏
  • 举报
回复
1lou
clhposs 2008-10-18
  • 打赏
  • 举报
回复
首先都是学控制台程序的

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧