vc运行其他程序的3种方法
- 格式:doc
- 大小:52.00 KB
- 文档页数:3
CategoryCD-ROM (1)关闭计算机 (1)重启计算机 (1)枚举所有字体 (1)只运行一个程序实例 (2)得到鼠标位置 (2)显示和隐藏程序菜单 (3)获取可执行文件的图标 (3)窗口自动靠边程序演示 (3)系统菜单添加菜单项 (5)动态增加或删除菜单 (6)改变应用程序的图标 (7)改变窗口标题的方法 (7)剪切板上通过增强元文件拷贝图像数据 (8)剪切板上文本数据的传送 (8)捕捉屏幕图像到剪切板中 (9)将位图缩放显示 (11)改变对话框中控件的颜色 (12)修改窗口外观 (14)获得应用程序主窗口的指针 (15)确定应用程序的路径 (15)获得其他程序的图标 (15)获得各种目录信息 (16)如何自定义消息 (16)改变窗口的缺省风格 (16)将窗口居中显示 (17)一启动就最大化和最小化 (17)限制窗口的大小 (17)创建一个字回绕的CEditView (18)程序保持极小状态 (18)移动窗口 (18)重置窗口的大小 (18)单击窗口标题栏以外区域使窗口移动 (19)改变视窗的背景颜色 (20)防止主框窗口在其说明中显示活动的文档名 (20)获取有关窗口正在处理的当前消息的信息 (21)代码中获取工具条和状态条的指针 (21)使能和禁止工具条的工具提示 (21)如何创建一个不规则形状的窗口 (22)获取应用程序的实例句柄 (24)如何编程结束应用程序 (24)创建和使用无模式对话框 (25)怎样加载其他的应用程序 (26)使窗口始终在最前方 (27)在对话框中显示一个位图 (27)获取一个对话控件的指针 (27)改变控件的字体 (28)OLE控件中使用OLE_COLOR数据类型 (28)在不使用通用文件打开对话的情况下如何显示一个文件列表 (29)旋转按钮控件 (29)用位图显示下压按钮 (29)创建三态下压按钮 (30)如何动态创建控件 (30)限制编辑框中的准许字符 (30)向列表框中添加多个项时防止闪烁 (32)向编辑控件中添加文本 (32)访问预定义的GDI对象 (32)获取GDI对象的属性信息 (33)实现一个橡皮区矩形 (34)更新翻转背景颜色的文本 (36)创建一个具有特定点大小的字体 (36)如何计算一个串的大小 (37)显示旋转文本 (37)显示包含标签字符的串 (39)串太长时如何在其末尾显示一个省略号 (39)为什么即使调用EnableMenuItem菜单项后,菜单项还处于禁止状态 (39)在用户环境中如何确定系统显示元素的颜色 (40)查询和设置系统参数 (40)确定当前屏幕分辨率 (41)使用预定义Windows光标 (41)检索原先的Task Manager应用程序使用的任务列表 (41)确定Windows和Windows系统目录 (42)在哪儿创建临文件 (43)我怎样才能建立一个等待光标 (44)访问桌面窗口 (44)怎样用COLORREF (44)在应用程序中循环浏览已经打开的文档、视图 (45)MFC在窗口标题栏 (45)CD-ROM打开:mciSendString("Set cdAudio door open wait",NULL,0,NULL);关闭:mciSendString("Set cdAudio door closed wait",NULL,0,NULL);关闭计算机OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);GetVersionEx(&OsVersionInfo); //获取操作系统版本信息if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS){//Windows98,调用ExitWindowsEx()函数重新启动计算机DWORD dwReserved;ExitWindowsEx(EWX_REBOOT,dwReserved); //可以改变第一个参数,实现注销用户、//关机、关闭电源等操作// 退出前的一些处理程序}重启计算机typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针HINSTANCE hInst = LoadLibrary("shell32.dll"); //装入shell32.dll SHUTDOWNDLG ShutDownDialog; //指向shell32.dll库中显示关机对话框函数的指针if(hInst != NULL){//获得函数的地址并调用之ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);(*ShutDownDialog)(0);}枚举所有字体LOGFONT lf;lf.lfCharSet = DEFAULT_CHARSET; // Initialize the LOGFONT structurestrcpy(lf.lfFaceName,"");CClientDC dc (this);// Enumerate the font families::EnumFontFamiliesEx((HDC)dc,&lf,(FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0);//枚举函数int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam){// Create a pointer to the dialog windowCDay7Dlg* pWnd = (CDay7Dlg*) lparam;// add the font name to the list boxpWnd ->m_ctlFontList.AddString(lpelf ->elfLogFont.lfFaceName);// Return 1 to continue font enumerationreturn 1;}其中m_ctlFontList是一个列表控件变量只运行一个程序实例if( FindWindow(NULL,"程序标题")) exit(0);或CreateMutx:HANDLE m_hMutex = ::CreateMutex(NULL,true,_T("MBD"));if(GetLastError() == ERROR_ALREADY_EXISTS){ReleaseMutex(m_hMutex);::MessageBox(NULL,_T("应用程序已经运行!"),_T("系统提示"),MB_OK|MB_ICONSTOP);return FALSE;}也可以用CreateThread,方法同CreateMutex得到鼠标位置CPoint pt;GetCursorPos(&pt); //得到位置显示和隐藏程序菜单CWnd *pWnd=AfxGetMainWnd();if(b_m) //隐藏菜单{pWnd->SetMenu(NULL);pWnd->DrawMenuBar();b_m=false;}else{CMenu menu;menu.LoadMenu(IDR_MAINFRAME); ////显示菜单也可改变菜单项pWnd->SetMenu(&menu);pWnd->DrawMenuBar();b_m=true;menu.Detach();}获取可执行文件的图标HICON hIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0); if (hIcon &&hIcon!=(HICON)-1){pDC->DrawIcon(10,10,hIcon);}DestroyIcon(hIcon);窗口自动靠边程序演示BOOL AdjustPos(CRect* lpRect){//自动靠边int iSX=GetSystemMetrics(SM_CXFULLSCREEN);int iSY=GetSystemMetrics(SM_CYFULLSCREEN);RECT rWorkArea;BOOL bResult = SystemParametersInfo(SPI_GETWORKAREA, sizeof(RECT), &rWorkAre a, 0);CRect rcWA;if(!bResult){//如果调用不成功就利用GetSystemMetrics获取屏幕面积rcWA=CRect(0,0,iSX,iSY);}elsercWA=rWorkArea;int iX=lpRect->left;int iY=lpRect->top;if(iX < rcWA.left + DETASTEP && iX!=rcWA.left){//调整左//pWnd->SetWindowPos(NULL,rcWA.left,iY,0,0,SWP_NOSIZE);lpRect->OffsetRect(rcWA.left-iX,0);AdjustPos(lpRect);return TRUE;}if(iY < rcWA.top + DETASTEP && iY!=rcWA.top){//调整上//pWnd->SetWindowPos(NULL ,iX,rcWA.top,0,0,SWP_NOSIZE);lpRect->OffsetRect(0,rcWA.top-iY);AdjustPos(lpRect);return TRUE;}if(iX + lpRect->Width() > rcWA.right - DETASTEP && iX !=rcWA.right-lpRect->W idth()){//调整右//pWnd->SetWindowPos(NULL ,rcWA.right-rcW.Width(),iY,0,0,SWP_NOSIZE);lpRect->OffsetRect(rcWA.right-lpRect->right,0);AdjustPos(lpRect);return TRUE;}if(iY + lpRect->Height() > rcWA.bottom - DETASTEP && iY !=rcWA.bottom-lpRect->Height()){//调整下//pWnd->SetWindowPos(NULL ,iX,rcWA.bottom-rcW.Height(),0,0,SWP_NOSIZE);lpRect->OffsetRect(0,rcWA.bottom-lpRect->bottom);return TRUE;}return FALSE;}//然后在ONMOVEING事件中使用所下过程调用CRect r=*pRect;AdjustPos(&r);*pRect=(RECT)r;系统菜单添加菜单项给系统菜单添加一个菜单项需要进行下述三个步骤:首先,使用Resource Symbols对话(在View菜单中选择Resource Symbols...可以显示该对话)定义菜单项ID,该ID应大于0x0F而小于0xF000;其次,调用CWnd::GetSystemMenu获取系统菜单的指针并调用CWnd:: Appendmenu将菜单项添加到菜单中。
VC程序调试VC程序调试调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。
不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。
一、VC程序调试方法 VC的调试功能:首先,再次强调要用Go命令运行一个将要调试的程序;如果要中止调试状态下的运行程序可以点击Stop Debugging命令,还可以通过Break选项以可恢复方式中断调试程序的运行流程(用Restart选项可以重新开始运行程序);Step Into选项表示每次只执行一行语句(单步执行),但如果当前代码是调用一个函数,那么Step Into表示进入该函数,全部函数语句执行完后返回,而Step Over则是跳出这个函数;Step To Cursor 选项表示程序将执行到光标所在的可执行语句行上;在调试多线程程序时,可以在线程函数或主应用程序线程中设置断点,还可以用Break选项结束线程后用Threads选项查看运行线程列表,也可以选择悬挂和恢复每个线程;在设置断点后,在VC "查看"菜单的"调试窗口"中可以查看变量、内存、调用堆栈、寄存器以及反汇编语句。
在程序中设置断点的方法是,点击要设置的代码行并点击设置代码的工具栏按钮,会出现在代码行最左边的一个小黑点即是断点标志,这时再选Go 程序会在执行到端点处停下来,如果要继续执行可以再选Go。
通过选择VC"工具"菜单下的"源浏览器"可以生成一个.BSC文件,使用浏览器可以从中发现多种信息:程序中任何一个变量、函数、类或宏在何处定义及引用;可以列出所有声明的函数类、变量、宏;可以发现调用一个指定函数的所有函数;可以找到一个指定类的派生来源或者它派生出哪些类。
在使用微软程序开发库MSDN时,我们会发现其中的VC示例经常采用看似多余的ASSERT语句,其作用就是使程序具有"维护"性。
VC操作Excel的方法(2007-01-05 21:18:45)分类:VC,VB,Matlab编程开发A: 从classwizard中add class处from type library,去office的安装目录下引入excel.exe(这是office 2003的选择,其他版本都是用olb文件),服务器就算引入了,这时会弹出对话框,要求加入一些类,这些类都是一些接口,里面有大量的方法,类的对象表征着excel文件的一个个部分,常用的有这几个_application,workbooks,_workbook,worksheets,_worksheet,Range,它们分别代表不同的意义._application代表了EXCEL服务器,workbooks表示整个Excel服务器(表现为一个.xls文件)里所有的表,(可以通过"新建"得到多个表,即MDI程序里的一个视窗一样,所有的视窗就是workbooks), _workbook就是一个表,相当于MDI中的一个视窗, worksheets表示所有的表单,每个表都可能有很多表单(建立一个Excel文件之后,打开,可以看到有sheet1,sheet2等,所有这些sheetn就组成了worksheets), _worksheet就表示一个表单, range表示元素的集合. 搞清楚上面这几个名词的意思非常重要.B,在dlg.h中声明下面几个变量:_Application exlapp; //组件服务器的各个classes_Workbook wbk;Workbooks wbks;_Worksheet wht;Worksheets whts;LPDISPATCH lpDisp;并在app.cpp的InitInstance方法中加入下面两句AfxInitOle(); AfxEnableControlContainer(); C,这里我没有像上面一样完全用程序来生成一个Excel文件,而是在开始时就在当前目录下生成了一个Excel文件,在对话框上我设置了两个按钮,下面是"显示"按钮的代码://创建Excel服务器if(!exlapp.CreateDispatch("Excel.Application")){AfxMessageBox("无法启动Excel服务器!");return;}COleVariant avar((long)DISP_E_PARAMNOTFOUND,VT_ERROR);exlapp.SetVisible(TRUE);//使Excel可见exlapp.SetUserControl(TRUE);//允许其它用户控制Excel,否则Excel将一闪即逝.//Open an excel filechar path[MAX_PATH];GetCurrentDirectory(MAX_PA TH,path);CString strPath = path;strPath += "\\VCOpExcel";wbks.AttachDispatch(exlapp.GetWorkbooks());lpDisp=wbks.Open(strPath,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar);wbks.ReleaseDispatch();exlapp.ReleaseDispatch();D,与上面第一种方法一样,可以插入记录:UpdateData(); //读入数据if (""==m_name) //判断名字输入有效{MessageBox("Please input a right name");return;}if (0>=m_age||100<=m_age) //判断年龄输入有效{MessageBox("Please input a right age");return;}char *p=strupr(_strdup(m_gener));if (strcmp(p,"FEMALE")&&strcmp(p,"MALE")) //判断性别输入有效 {MessageBox("Please input a right gener");return;}Range range;Range usedRange;COleVariant avar((long)DISP_E_PARAMNOTFOUND,VT_ERROR);if(!exlapp.CreateDispatch("Excel.Application")) //启动服务器{AfxMessageBox("无法启动Excel服务器!");return;}char path[MAX_PATH];GetCurrentDirectory(MAX_PA TH,path);CString strPath = path;strPath += "\\VCOpExcel";wbks.AttachDispatch(exlapp.GetWorkbooks());lpDisp=wbks.Open(strPath, //初始化.avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar,avar); wbk.AttachDispatch(lpDisp);whts.AttachDispatch(wbk.GetWorksheets());lpDisp=wbk.GetActiveSheet();wht.AttachDispatch(lpDisp);usedRange.AttachDispatch(wht.GetUsedRange());range.AttachDispatch(usedRange.GetRows());long iRowNum=range.GetCount();//已经使用的行数range.AttachDispatch(wht.GetCells());range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(1)),COleVariant(m_name)); range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(2)),COleVariant(m_age));range.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(3)),COleVariant(m_gener));wbk.Save();wbk.Close(avar,COleVariant(strPath),avar);wbks.Close();exlapp.Quit();(完)分享到新浪微博阅读(802)|评论(2)|收藏(0)|打印|举报前一篇:结婚流程(转)后一篇:vc excel 操作补充评论重要提示:警惕虚假中奖信息,点击查看详情免费任选1000款游戏新手卡[发评论]你好:2007-01-11 12:30:31我参考你的文章做了一下关于excel的操作但是执行if(!ExcelApp.CreateDispatch("Excel.Application",NULL)){AfxmessageBox("创建Excel服务失败");exit(1);}总是失败。
目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了《vc中调用其他应用程序的方法(函数)winexec,shellexecute ,createprocess》,我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题)。
三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。
WinExec 两个参数,前一个指定路径,后一个指定显示方式。
ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。
CreateProcess 一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等。
如果我们要得到足够多的关于新的进程的信息,控制新的进程的细节属性,若要达到这些目的,我们就需要使用CreateProcess函数了。
三个SDK函数(WinExec、ShellExec、CrateProcess )的语法:(一)WinExec这个函数最简单,只有两个参数,原型如下:UINT WinExec(LPCSTR lpCmdLine, // 命令路径UINT uCmdShow // 显示方式);使用方法如下:WinExec("Notepad.exe", SW_SHOW); // 打开记事本WinExec("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打开Test.exe需要注意的是若用SW_SHOWMAXMIZED 方式去加载一个无最大化按钮的程序,譬如Neterm,Calc 等等,就不会出现正常的窗体,但是已经被加到任务列表里了。
附录A C程序的基本开发过程C语言程序开发涉及到四个过程:编辑、编译、连接、装载并运行。
这些单词所表达的意义我们可以慢慢体会,下面首要的是学会依葫芦画瓢,学会按照下面的方法在VC++环境下建立一个工程、编辑源文件、编译、调试、装载并运行程序。
在Windows操作系统下,VC++环境的基本使用方法如下,详细的调试方法可参阅相关资料,或者参阅微软MSDN帮助文件。
A.1 安装程序VC++环境的安装请参阅相关的安装程序说明。
双击setup文件,然后根据提示,一路next就可以了。
A.2 新建一个工程、新建一个源文件、添加源文件到工程1.首先请在F盘(或其他盘)上建立文件夹TEST,以便将待建的C程序工程文件project 等相关文件放置在该文件夹中。
2.新建一个工程project首先鼠标左键单击“文件”菜单,选择“新建”单击鼠标左键,系统将弹出一个窗口,单击“工程”选项,将得到图A.1所示窗口。
请在“位置”栏填入刚才所建的目录F:\TEST (可以是自己设定的其他目录),并在“工程名称”栏填入project(可以是自己命名的其他工程名),然后鼠标左键单击左边窗口倒数第三项“Win32 Console Application”,使该项变蓝,然后鼠标左键单击“确定”按钮。
得到图A.2所示窗口,选择“一个空工程”,单击“完成”得到图A.3。
再单击“确定”得到图A.4所示的窗口,鼠标左键单击右下角的“FileView”字样,再单击project files左边的“+”号,在其下面的工作空间将出现三个文件夹:“Source Files”、“Header Files”、“Resource Files”,如图A.5所示(此时尚无浮动菜单)。
图A.1图A.2 图A.3图A.4图A.53.新建一个源文件hello.c要新建一个C程序源文件可以选择“文件”菜单的“新建”选项,在弹出的窗口中选择“文件”选项单击,得到如图A.6所示的窗口,其“位置”栏中的内容是默认的,在“添加到工程”前打勾,“工程名”project也是默认的,但“文件名”一栏中的内容需要自己填写,且必须是以.c为后缀,比如图中的 hello.c(注:该栏的内容一定要以.c为后缀,否则系统会默认为.cpp,这样编译时就会调用C++的编译器,而我们需要调用C语言的编译器)。
如何在VC++6.0中创建、编译、链接、运行一个C程序2010-12-04 17:26:21| 分类:VC编程| 标签:如图对话框弹出编译单击|字号大中小订阅(1)启动VC++6.0 (如图1)图1(2)创建一个C程序:①单击“File”——单击“New”,会弹出一个窗口(如图2),--选win32 console application --填写工程名并选择放置工程的位置-------确定------在弹出的窗口中选“一个空工程”(an empty project)-----确定。
图2②选择“Files”选项卡,再选中“C++ Sourse File”(如图3)图3③在“Location”栏目中设置存放位置。
方式一:直接输入存放路径,如d:yongsailigaofeng;方式二:单击右侧省略号按钮“”,弹出“Choose Directory”对话框(如图4)进行设置,设置完后单击“OK”即可。
图4④在如图3的对话框中,在“File”栏目中输入文件名*.c(如以1.c为例,注:此时一定要带上.c,否则扩展名就变成了.cpp)。
④设置完后单击“OK”即可。
⑤编辑一个C程序内容后保存(如图5),此时就完成了一个C文件的创建。
图5(3)编译:单击编译按钮“” (或者Ctrl+F7),会弹出如图6的对话框,图6此时选择“是(Y)”创建一个默认project workspace。
编译成功后,会生成1.obj目标文件,出现如图7的提示:图7(4)链接:单击链接按钮“” (或者F7),会弹出如图8的对话框,链接成功后,会生成1.exe的可执行文件,出现如图8的提示:图8(5)运行:单击运行按钮“” (或者Ctrl+F5),会弹出如图9的对话框,图9(6)关闭工作区:①按任意键返回;②单击“File”——单击“Close Workspace”(如图10)。
图10(结束)评论这张转发至微博转发至微博0人 | 分享到:阅读(1070)| 评论(1)| 引用(0) |举报用VC编译C程序学习编程应该学习的语言历史上的今天∙[转]23岁以后的你,一定要看看哦2008-12-04 18:54:15相关文章∙鼠标单击操作教案2009-11-26 09:11:10∙解析Win XP的“单击锁定”功能2007-06-10 15:15:18∙360单击游戏中心诺顿2010简体中文版2010-08-25 22:56:03。
vc2010的使用方法VC2010是微软公司推出的一款集成开发环境(Integrated Development Environment, IDE),用于开发基于Windows操作系统的应用程序。
本文将介绍VC2010的使用方法,帮助读者快速上手并熟练运用该开发环境。
一、VC2010的安装和配置1. 下载VC2010安装包,双击运行安装程序。
按照提示选择安装目录和组件,建议选择完整安装以获得更多的功能和工具。
2. 安装完成后,打开VC2010。
首次打开时,会弹出一个“开始页面”,其中包含了最近打开的项目、新建项目的模板等信息。
可以根据需要选择打开项目或新建项目。
3. 配置编译器和调试器:点击菜单栏上的“工具”-“选项”,在弹出的对话框中选择“项目和解决方案”-“VC++目录”,可以配置编译器和调试器所需的文件和路径。
二、新建项目1. 在VC2010中,可以通过菜单栏上的“文件”-“新建”-“项目”来创建一个新项目。
在弹出的对话框中,可以选择项目类型和模板。
2. 选择项目类型:根据具体需求选择相应的项目类型,比如Windows桌面应用程序、控制台应用程序、动态链接库等。
3. 选择模板:根据项目类型选择所需的模板。
模板包括空项目、基于DLL的MFC应用程序、Win32控制台应用程序等。
4. 指定项目名称和保存路径,并点击“确定”按钮。
VC2010将自动生成一个项目文件夹,并在其中创建项目文件和相应的代码文件。
三、编辑和编译代码1. 打开项目后,可以在“解决方案资源管理器”中看到项目的文件结构。
在源文件中,可以编写代码。
2. VC2010支持多种编程语言,比如C++、C#等。
根据项目需求,选择相应的编程语言进行开发。
3. 在编辑器中编写代码,可以使用智能感知和自动补全等功能,提高编码效率。
同时,VC2010还提供了丰富的调试工具,可以帮助开发者快速定位和解决问题。
4. 编写完成后,点击菜单栏上的“生成”-“生成解决方案”来编译项目。
vc使用方法VC 使用方法。
VC 是一款功能强大的集成开发环境,可以帮助开发者进行C/C++ 程序的开发。
本文将介绍 VC 的基本使用方法,帮助初学者快速上手。
1. 安装 VC。
首先,你需要从官方网站下载 VC 的安装包,并按照提示进行安装。
安装完成后,打开 VC,你将看到一个简洁的界面,包括菜单栏、工具栏、编辑区和输出区。
2. 创建新项目。
在 VC 中,你可以创建新项目来进行开发。
点击菜单栏中的“文件”选项,选择“新建”,然后选择“项目”。
在弹出的对话框中,选择项目类型(如控制台应用程序、Windows 桌面应用程序等),填写项目名称,点击“确定”即可创建新项目。
3. 编写代码。
在创建新项目后,你可以在编辑区编写代码。
VC 提供了丰富的代码编辑功能,包括代码高亮、自动补全、代码折叠等,可以大大提高编码效率。
4. 调试程序。
在编写完代码后,你可以点击工具栏中的“调试”按钮来进行程序调试。
VC 提供了强大的调试功能,可以帮助你快速定位和解决程序中的 bug。
5. 构建和运行程序。
当程序编写完成并通过调试后,你可以点击工具栏中的“生成”按钮来构建程序。
构建完成后,你可以点击“运行”按钮来运行程序,查看程序的运行效果。
6. 其他功能。
除了上述基本功能外,VC 还提供了许多其他功能,如版本控制、性能分析、代码重构等,可以帮助你更好地进行程序开发和维护。
总结。
通过本文的介绍,相信你已经对 VC 的基本使用方法有了一定的了解。
当然,VC 还有很多其他功能和技巧等待你去探索和学习。
希望本文能够帮助你快速上手 VC,并顺利进行 C/C++ 程序的开发工作。
祝你编程愉快!。
VC++6.0中如何编译运行C语言的多个源文件程序多个源文件的编译运行在源程序过多的情况下,单个源文件往往难于检查错误,因此在程序设计时,往往是由几个人各自独立编写不同的程序,显然这些程序是不能写在一起进行编译的,这时就需要建立项目工作区来完成几个独立程序的编译,具体方法如下。
打开VC++6.0,选择“file”→“new”打开如图1所示(图1)选择“workespaces”项,并在“workespaces name”项目下输入“file”(可随意)如图2所示(图2)单击“OK”,打开如图3所示(图3)在左侧的“Workespaces”显示了新建立的工作区选择“file”→“new”打开如图9所示,在“Projects”项目下选择“W in32 ConsoleApplication”项,并在“project name”项目下输入工程名称,如“file”,选择“Add to current workespaces”项,如图4所示(图4)单击“OK”,打开如图5所示(图5)选择“An empty project”项,单击“Finish”,打开如图6所示(图6)单击“OK”,打开如图7所示(图7)在左侧的“Workespaces”显示了新建立的工程选择“file files”→“Source”→“new”,打开如图8所示(图8)点击“C++ Source File”,然后到File中输入如file1.c,最后点击OK。
以同样的方式在这个文件下建立两个文件,打开如图17所示(图8)输入源代码1和源代码2,源代码1:#include<stdio.h>int A;int main(){int power(int n);int b=3,c,d,m;printf("enter the number a and its power m:\n");scanf("%d,%d",&A,&m);c=A*b;printf("%d*%d=%d\n",A,b,c);d=power(m);printf("%d**%d=%d\n",A,m,d);return 0;}源代码2:extern A;int power(int n){int i,y=1;for(i=1;i<=n;i++)y*=A;return(y);}(注:此程序完成其他文件外部变量的使用)选择“Build”→“Build file.exe”(或按F7键),打开如图9所示(图9)在下端的输出窗口会有错误和警告的提示,如果没有错误选择“Build”→“Execute file.exe”(或按Ctrl+F5)输入13,3即可出现运行结果,如图10所示(图10)。
源程序运行方法A1、运行环境操作系统是Windows95以上版,装有VC++6.0开发环境2、运行方法(1)在VC++6.0环境下打开源程序运行①单击windows窗口左下角开始菜单②选择所有程序—〉Microsoft Visual Studio 6.0—〉Microsoft VisualC++ 6.0单击③关闭Tip of the day 对话框,点击按钮Close④点击文件菜单—〉打开菜单项,再弹出对话框中选择路径,在文件类型种选择project(.dsp),选择文件名,点击打开⑤点击编译—〉Execut……或工具栏按钮.(2)双击运行快捷图标。
B:1.源程序文件夹包含:(1)I MPUBasic语言程序设计器文件夹:本文件夹包含本次程序的所有源代码模块(.cpp,.h等文件)。
查看这些源代码打开只需直接双击,则用VC++6.0环境打开。
(2)测试用例文件夹:本文件夹包括若干vb测试用例(.bas文件)。
这些用例用“IMPUBasic语言程序设计器.exe”打开。
(3)I MPUBasic语言程序设计器.exe 可执行文件:本文件是本编译器的最终成品,用VC++6.0编写。
其源代码在以上提到的(1)“IMPUBasic语言程序设计器文件夹”中存放。
本可执行文件直接双击打开。
2.IMPUBasic语言程序设计器.exe的使用:本可执行文件双击后直接打开,出现使用界面。
(1)使用现有用例本程序给出了9个现有测试用例(存放在以上提到的“测试用例”文件夹内)。
在打开IMPUBasic语言程序设计器环境后,在菜单栏“文件->打开”中,找到“测试用例”文件夹,打开后该用例代码显示在界面屏幕上。
在“程序->运行”(或直接单击工具按钮!)找到刚才打开的测试用例,打开后出现刚才该用例的运行结果。
(2)测试自己的用例在界面输入区手动输入Basic程序,然后“另存为”(注意:不是“保存”),保存成自己的文件,记住文件名。
在VC6.0中编写和运行示例程序的方法1. 启动VC 6.0,选择菜单File|New …,在打开的对话框中,选择“Win32 Console Application ”, 如下图所示。
输入项目名称之后按下“OK ”。
2. 在随后打开的对话框中选择“An empty project ”, 然后按下“Finish ”。
3. 在随后打开的“New project information”对话框中,按下“OK”。
4. 现在已建立了一个空白的控制台程序。
将示例程序的某个*.CPP文件和common.h复制到你的project所在的文件夹下。
5. 选择VC窗口的“File view”,右击“Source files”,在弹出的菜单中选择“Add Files to Folder”。
如下图所示。
6. 接下来指定示例程序的*.CPP文件,使之出现在“Source Files”下面。
7. 类似地,将示例程序中的Common.h文件加入到“Header Files”下面。
8. 现在可以编译、运行了。
9. 如果你在build时出现如下错误:Linking...LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16Debug/DuList.exe : fatal error LNK1120: 1 unresolved externals则说明编译连接时找不到程序入口(main函数),这是微软的问题,不是我们的错误。
解决的办法是:选择菜单Project | settings…,在打开的对话框中选择标签“Link”,在其中的“Project Options”编辑框中,找到“subsystem: windows”,将其改为“subsystem: console”,如下图所示,然后按下“OK”。
10. 重新编译、运行。
你可以在示例程序的基础上按习题要求编写程序,然后运行、调试直至成功。
VC编程实现控制其他应用程序VC编程可以实现控制其他应用程序的功能,可以通过编写代码来实现对其他应用程序的自动化操作、窗口控制、数据交互等。
下面将介绍VC编程实现控制其他应用程序的一般步骤和方法。
首先,要控制其他应用程序,首先需要了解被控制应用程序的接口和功能。
可以使用Windows API、COM等方式获取被控制应用程序的相关信息,并定义好需要使用的函数和数据类型。
在VC编程中,可以使用MFC (Microsoft Foundation Class)库、Windows API等来实现对应的功能。
一般而言,控制其他应用程序的主要方法有以下几种:1. Shell执行:VC编程可以使用Shell命令来执行其他应用程序的命令行操作。
可以使用ShellExecute函数来调用其他应用程序并传递相关参数。
例如,可以使用ShellExecute(NULL, "open", "notepad.exe", "myfile.txt", NULL, SW_SHOW)来打开记事本,并打开指定的文件。
2. 窗口控制:控制其他应用程序的窗口可以使用Windows API函数,如FindWindow、GetWindow、SetWindowPos等函数来实现。
可以通过FindWindow函数来通过窗口标题或类名找到其他应用程序的窗口句柄,然后使用GetWindow函数获取窗口的信息,并通过SetWindowPos函数来调整窗口的位置、大小等。
3. 模拟按键和鼠标操作:VC编程可以使用Windows API函数来模拟按键和鼠标操作。
例如,可以使用keybd_event函数来模拟键盘按键操作,使用mouse_event函数来模拟鼠标点击和移动操作。
通过这些函数,可以实现在其他应用程序中输入文本、点击按钮等操作。
4. 进程控制:VC编程可以通过Windows API函数来控制其他应用程序的进程。
《C语言程序设计》–学习指南
VC2010 express 运行c程序操作过程
信息工程学院张坤
2020/3/1
目录
一、新建项目 (3)
二、项目界面基本介绍 (5)
三、向项目中添加文件 (7)
四、编译并运行C++文件 (8)
一、新建项目
点击《文件》->《新建》->《项目》,
选择空项目,选择项目存放的文件夹,并输入名称和解决方案
创建后界面如下:
二、项目界面基本介绍
先介绍一下界面主要栏目的用处:
简单介绍一下左边栏解决方案资源管理器中的几个文件夹的主要存放内容
另外特别标注一下,由于版本问题,有些同学打开项目后,左侧的解决方案资源管理器常常无法显示,可以按如下的方案重新打开该面板:
点击《视图》->《其他窗口》->《解决方案资源管理器》
三、向项目中添加文件
一般来说我们主要需要添加.cpp文件,这个文件添加主要可以在解决方案资源管理器中本项目《源文件》文件夹上点击右键,选择添加 新建项
点击后会出现如下窗口:
请注意选择C++文件
四、编译并运行C++文件
添加文件后界面显示如下:
在中间的编辑区输入代码,显示如下:
在上面的代码中使用了getchar();
注意在VC2010中,在代码中需要用getchar(); 对代码执行进行暂停。
否则在学习早期阶段由于程序代码较短而且较为简单,程序会迅速执行到main函数结尾并直接关闭命令控制行窗口。
点击
执行代码后运行如下:。
1.安装和启动运行Visual Studio软件中的setup.exe程序,选择安装Visual C++ 6.0,然后按照安装程序的指导完成安装过程。
安装完成后,在开始菜单的程序选单中有Microsoft Visual Studio 6.0图标,选择其中的Microsoft Visual C++ 6.0即可运行(也可在Window桌面上建立一个快捷方式,以后双击即可运行)。
2.创建工程项目用Visual C++6.0系统建立C语言应用程序,首先要创建一个工程项目(project),用来存放C程序的所有信息。
创建一个工程项目的操作步骤如下:(1)进入Visual C++6.0环境后,选择主菜单“文件(File)”中的“新建(New)”选项,在弹出的对话框中单击上方的选项卡“工程(Projects)”,选择“Win32 Console Application”工程类型,在“工程(Project name)”一栏中填写工程名,例如Myexam1,在“位置(Location)”一栏中填写工程路径(目录)例如:D:\ MyProject,见图2-1,然后单击“确定(OK)”按钮继续。
图2-1 创建工程项目(2)屏幕上出现如图2-2所示的“Win32 Console Application—Step 1 of 1”对话框后,选择“An empty project”项,然后单击“F完成(Finish)”按钮继续:图2-2 Win32 Console Application—Step 1 of 1对话框出现如图2-3所示的“新建工程信息(New Project Information)”对话框后,单击“确定(OK)”按钮完成工程创建。
创建的工作区文件为myexam1.dsw和工程项目文件myexam1.dsp。
图2-3 新建工程信息对话框3. 新建C源程序文件选择主菜单“工程(Project)”中的“添加工程(Add to Project) 新建(New)”选项,为工程添加新的C源文件。
vc++6.0入门教程步骤是:(先工程—后文件—编译—连接---运行)1 桌面上的快捷方式如下:双击即可运行2 在所有程序里点击也可以运行:3 即会出现如下界面:14 进入后的界面如下:25将每日提示关闭既可:31,建立一个工程,“文件”——“新建”,出现下面界面:选择“Win32 Console Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置,4点击“确定”,进入下一步,看到如下提示界面:建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后:5显示你创建的工程的信息。
2,再在有一个的工程的条件下,我们再建立一个源文件;“文件”——“新建”(快捷键Ctri+N),出现:6建立源文件,选择“C++ Source ”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++ Header File”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后:7进入编辑区,在主界面编写代码:如下编写完之后呢:89 可以按编译按钮调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮,就可以运行了。
如果是您有代码如:cpp 文件,或 .h 文件,想添加都VC6.0里来测试的话,可以这样做:首先,要理解一下 文件扩展名为:cpp 和.h文件扩张名是.h,代表的是头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等;文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main() ),包含了核心代码;建立与运行说明:(以VC 6.0编译器为例,其他编译器类似)首先,打开VC 6.0编译环境;10在菜单栏——文件(的下拉菜单中选择“新建”),在弹出的选择窗口中,选择Win32 Console Application(控制台应用程序) ,在填写工程名称,选择一个程序保存路径,点击“完成”,查看工程信息。
使用WinExec命令⑴函数原型:UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);⑵参数:lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。
uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。
⑶返回值:若函数调用成功,则返回值大于31。
若函数调用失败,则返回值为下列之一:①0:系统内存或资源已耗尽。
②ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。
③ERROR_FILE_NOT_FOUND:指定的文件未找到。
④ERROR_PATH_NOT_FOUND:指定的路径未找到。
虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。
简单地传送作为第一个参数的命令行,还需要决定如何显示程序(该程序也许会忽视它)的第二个参数。
通常,将其设置为SW_SHOW,也可尝试SW_MINIMIZED 或SW_MAXIMIZED。
WinExec不允许用CreateProcess获得的所有选项,而它的确简单。
使用ShellExecute命令⑴函数原型:HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpF ile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);⑵参数:hwnd:指向父窗口的窗口句柄。
此窗口接收应用程序产生的任何信息框。
lpOperation:一个空结束的字符串地址,此字符串指定要执行的操作。
下面的操作字符串是有效的:"open " 此函数打开由参数lpFile指定的文件,此文件可以是一个可执行文件或文档文件,也可是一个文件夹。
VC程序中运行其他程序的三种方法(转)
2009-02-05 12:02
有三个函数可以使用: WinExec, ShellExecute,CreateProcess 1.WinExec(String lpCmdLine,Long nCmdShow);
参数说明:
参数类型及说明
lpCmdLine String,包含要执行的命令行
nCmdShow Long,为窗口指定可视性方面的一个命令。
请用下述任何一个常数SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE
最小化窗口,活动状态给令一个窗
口
SW_RESTORE
用原来的大小和位置显示一个窗
口,同时令其进入活动状态
SW_SHOW
用当前的大小和位置显示一个窗
口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE
最小化一个窗口,同时不改变活动
窗口
SW_SHOWNA
用当前的大小和位置显示一个窗
口,不改变活动窗口
SW_SHOWNOACTIV A TE
用最近的大小和位置显示一个窗
口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
例: WinExec("c:\\a.txt",SW_SHOW);
2.ShellExecute
参数类型及说明
hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它lpFile String,想用关联程序打印或打开一个程序名或文件名
lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
lpDirectory String,想使用的完整路径
nShowCmd Long,定义了如何显示启动程序的常数值。
参考上表.
例:ShellExecute(Handle, ''open'', PChar(''c:\test\readme.txt''), nil, nil, SW_SHOW);
3.CreateProcess
参数类型及说明
lpApplicationName String,要执行的应用程序的名字。
可设为vbNullString;在这种情况下,应用程序的名字应在lpCommandLine参数的起始处出现
lpCommandLine String,要执行的命令行。
可用GetCommandLine函数取得一个进程使用的命令行。
Windows会尽可能地根据下述搜索顺序来查找执行文件:
(1)包含了父进程执行文件的目录
(2)父进程当前的目录
(3)由GetSystemDirectory返回的系统目录
(4)仅适于windows NT:16位系统目录
(5)由GetWindowDirectory返回的Windows目录
(6)由PATH环境变量指定的目录
lpProcessAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_A TTRIBUTES结构,或传递零值(将参数声明为ByVal As Long,并传递零值)——表示采用不允许继承的默认描述符。
该参数定义了进程的安全特性
lpThreadAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_A TTRIBUTES结构,或传递零值(将参数声明为ByVal As Long,并传递零值)——表示采用不允许继承的默认描述符。
该参数定义了进程之主线程的安全特性
bInheritHandles Long,TRUE表示允许当前进程中的所有句柄都由新建的子进程继承
dwCreationFlags Long,来自API32.TXT文件的一个或多个下述常数之一,它们都带有前缀CREATE_。
下面这些用于VB程序员:
CREATE_SEPARATE_WOW_VD
M(仅适用于NT)
启动一个16位的Windows应用程
序时,强迫它在自己的内存空间运
行
CREATE_SHARED_WOW_VD
M(仅适用于NT)
启动一个16位的Windows应用程
序时,强迫它在共享的16位虚拟机
(VM)内运行
CREATE_SUSPENDED
立即挂起新进程。
除非调用了
ResumeThread函数函数,否则它
不会恢复运行
也可能是下述常数之一,用于指定优先级
IDLE_PRIORITY_CLASS
新进程应该有非常低的优先级
——只有在系统空闲的时候才能
运行。
基本值是4
HIGH_PRIORITY_CLASS
新进程有非常高的优先级,它优先
于大多数应用程序。
基本值是13。
注意尽量避免采用这个优先级NORMAL_PRIORITY_CLASS 标准优先级。
如进程位于前台,则
基本值是9;如在后台,则优先值
是7
不要在VB中使用REALTIME_PRIORITY_CLASS
lpEnvironment Any,指向一个环境块的指针(环境缓冲区的头一个字符,或者环境块的地址)
lpCurrentDriectory String,新进程的当前目录路径。
调用函数的时候,可用vbNullString 指定当前目录
lpStartupInfo STARTUPINFO,指定一个STARTUPINFO结构,其中包含了创建进程时使用的附加信息
lpProcessInformation。