MKL在VS2008下的配置与使用要点

合集下载

VS2008下计算器的MFC编程实现..

VS2008下计算器的MFC编程实现..

VS2008下计算器的MFC编程实现简单的计算器编程,完全在VS2008下实现,主要用于熟悉VS2008的功能。

谨以此分享给和我一样初学MFC的朋友们。

STEP1:页面设计1.新建工程首先打开Visual Studio2008,选择MFC应用程序,设定好路径和工程名(这里我设置工程名为为“Calculator”)。

这里要注意的是在创建向导步骤1的时候,我们选择“基本对话框”,其他选项默认即可。

之后我们可以点击完成便看到以下界面:此时我们把当前页面上原配的控件按Delete全部清除(如下图)2.添加控件接着我们按照MFC自带的控件选项进行我们本次计算器的控件添加。

点击右侧的工具栏按钮(以下是控件)我们在原先清空的界面中依次用上图控件画出一个基本的计算器页面(如下图)。

影响用户的心情。

3.修改空间ID和Caption上图各控件类型如下:Edit ControlButtonGroup Box:选择其中一个GroupBox,右键单击,选择[属性]。

在右边显示属性对话框。

每个控件“属性”都有属于它自己的ID,默认的Group Box的ID为IDC_STATIC,而且Cap当然我们为了“顾名思义”,对控件ID进行修改成我们容易辨认的(也可以不改),添加完控件并修改ID。

4个Group Box的ID分别修改为IDC_STATIC_FRAME ,IDC_STATIC_IN, IDC_STATIC_RESULT, IDC_STATIC_BUTTON 控件Edit Control和Button也按相同的办法处理。

ID设置完成可以在“Resourse.h”中查看。

完成修改ID后,就需给控件添加消息响应了。

在属性对话框的上方点击闪电“”图标,添加控件事件。

如对于按钮“”,点击“”点击下拉键头,添加控件事件,页面自动切换到代码的编辑页面,如“添加OnBnClickedButton5”MFC默认下了的响应信息都为On_开头。

VS2008 VC++ XML操作

VS2008 VC++ XML操作

VS2008 VC++ XML操作1.msxmlchs.msi的安装安装msxml 4.0 sp2时要注意不要用默认安装,要选择自定义安装(全部安装)才能选择安装SDK,若没有选择安装SDk会发现安装完成后安装目录下什么也没有,而选择了SDK的安装可以在目录下看到LIB INC doc 3个文件夹2.注册dll命令行输入如下命令可以弹出注册成功的对话框cd c:\windows\system32regsvr32 msxml4.dll (也可在运行框中直接输入这句)3.VS2008 设置工具->选项->项目和解决方案->VC++目录Include添加INC的的路径C:\Program Files\MSXML 4.0\INCLibrary添加INC的的路径C:\Program Files\MSXML 4.0\LIB4.VC60 设置Tools->Options... ->Directories tab->Include添加INC的的路径C:\Program Files\MSXML 4.0\INCTools->Options... ->Directories tab->Library添加INC的的路径C:\Program Files\MSXML 4.0\LIB5.新建项目,链接库代码中#include <msxml2.h>VC60 open Project Settings by clicking Settings from the Project menu. Select the Link tab.Append "msxml2.lib" to the Object/library modules: textbox.6.Code1://部分变量无法识别时在前面加命名空间MSXML2::#include<stdio.h>#import<msxml4.dll>using namespace MSXML2;int main(int argc, char* argv[]){MSXML2::IXMLDOMDocument2Ptr pXMLDom;HRESULT hr;CoInitialize(NULL);hr = pXMLDom.CreateInstance(__uuidof(DOMDocument40));if (FAILED(hr)){printf("Failed to CreateInstance on an XML DOM");return NULL;}pXMLDom->preserveWhiteSpace = VARIANT_TRUE;// Create a processing instruction targeted for xml.MSXML2::IXMLDOMProcessingInstructionPtr pi;pi = pXMLDom->createProcessingInstruction("xml", "version='1.0'");if (pi != NULL) {pXMLDom->appendChild(pi);pi.Release();}// Create a processing instruction targeted for xml-stylesheet.pi = pXMLDom->createProcessingInstruction("xml-stylesheet","type='text/xml' href='dom.xsl'");if (pi != NULL) {pXMLDom->appendChild(pi);pi.Release();}// Create a comment for the document.MSXML2::IXMLDOMCommentPtr pc;pc = pXMLDom->createComment("sample xml file created using XML DOM object."); if (pc != NULL) {pXMLDom->appendChild(pc);pc.Release();}// Create the root element (i.e., the documentElement).MSXML2::IXMLDOMElementPtr pe;pe = pXMLDom->createElement("root");// Create a "created" attribute for the root element and// assign the "using dom" character data as the attribute value.MSXML2::IXMLDOMAttributePtr pa;pa = pXMLDom->createAttribute("created");if (pa != NULL){pa->value = "using dom";pe->setAttributeNode(pa);pa.Release();}// Add the root element to the DOM instance.pXMLDom->appendChild(pe);pe.Release();// Next, we will create and add more nodes to the root element// we've just created.// Create an element to hold text content.pe = pXMLDom->createElement("node1");if (pe != NULL){// Add newline + tab for indentation.pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n\t")); pe->text = "some character data";pXMLDom->documentElement->appendChild(pe);pe.Release();}// Create an element to hold a CDATA section.pe=pXMLDom->createElement("node2");if (pe != NULL){// Add newline + tab for indentation.pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n\t")); MSXML2::IXMLDOMCDATASectionPtr pcd;pcd = pXMLDom->createCDATASection("<some mark-up text>");if (pcd != NULL) {pe->appendChild(pcd);pcd.Release();}pXMLDom->documentElement->appendChild(pe);pe.Release();}// Create an element to hold three empty subelements.pe=pXMLDom->createElement("node3");if (pe != NULL){// Add newline +tab for indentation.pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n\t")); MSXML2::IXMLDOMDocumentFragmentPtr pdf;pdf = pXMLDom->createDocumentFragment();pdf->appendChild(pXMLDom->createTextNode("\n\t\t"));pdf->appendChild(pXMLDom->createElement("subNode1"));pdf->appendChild(pXMLDom->createTextNode("\n\t\t"));pdf->appendChild(pXMLDom->createElement("subNode2"));pdf->appendChild(pXMLDom->createTextNode("\n\t\t"));pdf->appendChild(pXMLDom->createElement("subNode3"));pdf->appendChild(pXMLDom->createTextNode("\n\t"));pe->appendChild(pdf);pdf.Release();pXMLDom->documentElement->appendChild(pe);pe.Release();pXMLDom->documentElement->appendChild(pXMLDom->createTextNode("\n")); }printf("Dynamically created DOM:\n%s\n",(LPCSTR)pXMLDom->xml);hr = pXMLDom->save("dynaDom.xml");if (FAILED(hr)){printf("Failed to save DOM to dynaDom.xml\n");}else{printf("DOM saved to dynamDom.xml\n");}if (pXMLDom) pXMLDom.Release();CoUninitialize();return 0;}结果:Dynamically created DOM:<?xml version="1.0"?><?xml-stylesheet type='text/xml' href='dom.xsl'?><!--sample xml file created using XML DOM object.--><root created="using dom"><node1>some character data</node1><node2><![CDATA[<some mark-up text>]]></node2><node3><subNode1/><subNode2/><subNode3/></node3></root>DOM saved to dynamDom.xml7.Code2(未编译验证):#include<stdio.h>#include<msxml2.h>// You might need to add the msxml4/sdk/(inc, lib) directories // to the Tools->Options...->Directories in Visual Studio.//// You might also need to append "msxml2.lib" to the// Project->Settings...->Link->Object/Libray Modules field.int main(int argc, char* argv[]){HRESULT hr;IXMLDOMDocument3 *pXMLDoc = NULL;IXMLDOMParseError * pObjError = NULL;BSTR bstr = NULL;VARIANT_BOOL status;VARIANT vSrc;CoInitialize(NULL);hr = CoCreateInstance(CLSID_DOMDocument40,NULL,CLSCTX_INPROC_SERVER,IID_IXMLDOMDocument3,(void**)&pXMLDoc);if (FAILED(hr)){printf("Failed to CoCreate an instance of an XML DOM\n"); printf("Error code: %x\n", hr);goto clean;}hr = pXMLDoc->put_async(VARIANT_FALSE);if (FAILED(hr)){printf("Failed to set async property\n");goto clean;}hr = pXMLDoc->put_validateOnParse(VARIANT_FALSE);if (FAILED(hr)){printf("Failed to set validateOnParse\n");goto clean;}hr = pXMLDoc->put_resolveExternals(VARIANT_FALSE);if (FAILED(hr)){printf("Failed to disable resolving externals.\n");goto clean;}VariantInit(&vSrc);V_BSTR(&vSrc) = SysAllocString(L"stocks.xml");V_VT(&vSrc) = VT_BSTR;hr = pXMLDoc->load(vSrc, &status);if(status!=VARIANT_TRUE){hr = pXMLDoc->get_parseError(&pObjError);hr = pObjError->get_reason(&bstr);printf("Failed to load DOM from books.xml. %S\n",bstr);goto clean;}hr = pXMLDoc->get_xml(&bstr);printf("stocks.xml:\n%S\n", bstr);clean:if (bstr)SysFreeString(bstr);if (&vSrc)VariantClear(&vSrc);if (pObjError)pObjError->Release();if (pXMLDoc)pXMLDoc->Release();CoUninitialize();return 0;}。

vs2008mfc教程

vs2008mfc教程

VS2008 MFC教程什么是MFC?MFC(Microsoft Foundation Classes)是一组用于Windows开发的C++类库。

它是一种基于对象的编程框架,旨在简化Windows图形用户界面(GUI)应用程序的开发。

MFC提供了许多预定义的类和函数,可用于创建窗口、对话框、菜单、工具栏等常见界面元素。

使用MFC可以大大加快GUI应用程序的开发速度,并提供Windows应用程序的一致外观和行为。

VS2008中的MFCMFC应用程序在Visual Studio 2008中创建一个MFC应用程序非常简单。

可以选择使用MFC应用程序向导,该向导将引导您完成创建应用程序的过程。

在创建应用程序时,您可以选择使用对话框或单文档/多文档界面。

MFC文件结构一个MFC应用程序通常包含多个文件。

以下是一些主要文件和文件夹:•AppName.cpp:包含应用程序的主要函数WinMain。

•AppName.h:包含应用程序的头文件,声明了应用程序类的成员变量和函数。

•AppNameDoc.cpp、AppNameDoc.h:包含应用程序的文档类,并实现了文档的读写功能。

•AppNameView.cpp、AppNameView.h:包含应用程序的视图类,用于处理用户界面和绘图。

•AppNameDlg.cpp、AppNameDlg.h:如果应用程序使用了对话框界面,则会包含对话框类的文件。

MFC消息映射在MFC中,用户界面中的各种事件(如按钮点击、菜单选择等)被称为消息。

消息映射允许您将特定消息与特定函数关联起来。

例如,当用户点击一个按钮时,MFC将自动调用与该按钮关联的函数,从而实现与按钮相关的操作。

MFC使用宏定义来实现消息映射。

您可以通过在类的消息映射表中添加条目来指定消息和对应的函数。

例如:BEGIN_MESSAGE_MAP(CMyView, CView)ON_COMMAND(ID_FILE_OPEN, &CMyView::OnOpenFile) ON_COMMAND(ID_FILE_SAVE, &CMyView::OnSaveFile) END_MESSAGE_MAP()上述代码将ID_FILE_OPEN和ID_FILE_SAVE消息与CMyView类中的OnOpenFile和OnSaveFile函数相关联。

sql managementstudio 2008

sql managementstudio 2008

SQL Management Studio 2008是微软推出的一款数据库管理工具,它为SQL Server提供了全面的管理、开发和配置功能。

作为数据库管理员或开发人员,熟练掌握SQL Management Studio 2008是非常重要的,因为它可以帮助我们更高效地管理和维护数据库,提高工作效率。

下面将从几个方面介绍SQL Management Studio 2008的功能和使用方法,希望对大家有所帮助。

一、安装和配置1. 下载安装包我们需要下载SQL Management Studio 2008的安装包,可以在微软冠方全球信息站上找到并进行下载。

2. 安装软件下载完成后,双击安装包,按照提示进行安装。

安装过程中需要选择安装路径、接受许可协议等步骤,按照默认设置进行即可。

3. 配置连接安装完成后,我们需要配置连接数据库的参数,包括服务器名称、身份验证方式等。

在连接成功后,我们就可以开始使用SQL Management Studio 2008了。

二、主要功能1. 查询和分析SQL Management Studio 2008提供了强大的查询和分析功能,可以帮助我们快速编写和运行SQL查询语句,并对查询结果进行分析和可视化展示。

2. 数据库管理通过SQL Management Studio 2008,我们可以方便地管理数据库,包括创建、删除、备份、还原等操作。

还可以对数据库对象进行管理,如表、视图、存储过程等。

3. 开发和调试作为开发人员,SQL Management Studio 2008还提供了丰富的开发和调试功能,包括编写存储过程、触发器,进行调试和性能优化等。

4. 安全性管理数据库的安全性是非常重要的,SQL Management Studio 2008可以帮助我们管理用户、角色、权限等安全性相关的配置,确保数据库的安全性。

5. 可视化管理SQL Management Studio 2008提供了直观的用户界面,可以通过图形化界面进行大部分操作,使得管理数据库变得更加简单和直观。

vc2008使用教程

vc2008使用教程

visual C++ 2008简单使用教程2009-05-21 17:04创建新项目:在“文件”菜单上,指向“新建”,然后单击“项目”。

在“Visual C++”项目类型中,单击“Win32”,然后单击“Win32 控制台应用程序”。

输入项目名称。

默认情况下,包含项目的解决方案与新项目同名,当然,您也可以键入其他名称。

如果愿意,您可以为项目输入一个不同的位置。

单击“确定”创建新项目。

在“Win32 应用程序向导”中,选择“空项目”并单击“完成”。

如果“解决方案资源管理器”不可见,请单击“视图”菜单上的“解决方案资源管理器”。

向该项目添加新的源文件:在“解决方案资源管理器”中,右击“源文件”文件夹,指向“添加”并单击“新建项”。

单击“代码”节点中的“C++ 文件(.cpp)”,输入一个文件名,然后单击“添加”。

该 .cpp 文件即显示在“解决方案资源管理器”中的“源文件”文件夹中,并且在键入代码的位置,出现一个选项卡式窗口。

在 Visual Studio 中,在新创建的选项卡中单击并键入使用标准 C++ 库的有效 C++ 程序,或者复制并粘贴示例程序之一。

例如,您可以使用 set::find (STL Samples) 示例程序,该程序位于帮助中的“标准模板库示例”主题中。

如果要为此过程使用示例程序,请注意 using namespace std; 指令。

此指令将允许程序使用 cout 和 endl,而无需要求完全限定名(std::cout 和 std::endl)。

在“生成”菜单上,单击“生成解决方案”。

“输出”窗口显示有关编译过程的信息,如生成日志的位置,以及指示生成状态的消息。

在“调试”菜单上,单击“开始执行(不调试)”。

如果使用了示例程序,将显示一个命令窗口,其中显示是否在集合中找到了特定的整数。

北风网MFC实战系列第一讲VS2008 IDE环境的使用

北风网MFC实战系列第一讲VS2008 IDE环境的使用

标题栏
主按钮
导航标签 帮助按钮
新型菜单栏
快捷标题栏
视图工具面板
状态栏
文档视图
都从CWnd派生而来
扩展客户框架窗口
类OutlookBar控 件面板
扩展主框架窗口
MSDN = Microsoft Developer Network 是微软公司面向软件开发者的一种信息服务
技术文档 微软产品下载 MSDN WebCast 在线电子教程 Blog MSDN 杂志 网络虚拟实验室 BBS
应用程序
ODBC
ODBC驱动 ODBC驱动 ODBC驱动
Access
SQL Server
Oracle
WinSock是巴克利套接字标准在Windows系统中的实 现。 套接字本质是一组与具体网络协议无关的网络编程 接口。 Socket可以调用多种协议(TCP/IP V4/V6 、 AppleTalk、IPX、IrDA等)。 WinSock包含了巴克利 Socket风格的标准函数;还包 含一组Windows扩展函数,使程序员能利用Windows 消息机制进行编程。 MFC中包含的是WinSock1.1库的封装(CSocket、 CAsyncSocket)。 目前Windows平台上较新的WinSock版本是2.2版。
某复合文档
Word数据 片段 Visio数据 片段
Excel数据 片段 其它数据 片段n
ODBC(Open Database Connectivity, 开放数据库互连)是微软公司开放服 务结构(WOSA,Windows Open Services Architecture)中有关数据库的 一个组成部分。 它建立了一组规范,并提供了一组 对数据库访问的标准API(应用程序 编程接口)。 这些API利用SQL来完成其大部分任 务。 ODBC本身也提供了对SQL语言的支 持,用户可以直接将SQL语句送给 ODBC。 MFC中有较完整的ODBC接口封装 类(CDatabase、CRecordset、 CRecordView )。

VS2008下MFC编程实例

VS2008下MFC编程实例

实例一:最简单的对话框程序Step1:新建MFC应用程序首先打开Visual Studio2008,选择MFC应用程序,设定好路径和工程名(这里我设置工程名为为“Calculator”)。

这里要注意的是在创建向导步骤1的时候,我们选择“基本对话框”,其他选项默认即可。

点击“完成”后界面如图所示。

Step2:添加代码在文件“MFChello.cpp”中,添加如下代码:MessageBox(NULL,"一个简单的MFC程序应用","实例一",MB_OK);出现的问题:MessageBox(NULL,"一个简单的MFC程序应用","实例一",MB_OK);error C2664: “MessageBoxW”: 不能将参数2 从“const char [22]”转换为“LPCWSTR”解决方法:1.“项目”——>“MFChello属性”“配置属性”——〉“常规”——〉“字符集”,选择“使用多字节字符集”。

2.将代码改为:MessageBox(NULL,L"一个简单的MFC程序应用",L"实例一",MB_OK);实例二:鼠标点击测试程序Step1:新建一个MFC应用程序同上,不再赘述。

Step2:修改界面选择图中Edit Cntrol 控件,点击右键,选择“属性”,右侧显示属性对话框。

修改Caption为“提示:点击鼠标左键或者右键试试”Step3:添加鼠标响应消息左侧“类视图”,选择类“CHelloworldDlg”,点击“”,添加“消息”。

选择“WM_LBOTTUNDOWN”,点击下拉箭头,添加“OnLButtonDown”同样添加消息“OnRButtonDown”。

Step4:添加代码出现的问题:Caption显示乱码解决方法:1.“项目”——>“MFChello属性”2. “配置属性”——〉“常规”——〉“字符集”,选择“使用多字节字符集”。

ivf配置mkl

ivf配置mkl
In the <project name> Property Pages window, click OK to close the window.
Some examples do not pause before the end of execution. To see the results printed in the Console window, set a breakpoint at the very end of the program or add the 'pause' statement before the last 'end' statement.
Right-click the Header Files folder under <project name> and select Add > Existing Item... from the drop-down menu.
The Add Existing Item - <project name> window opens.
The Add Existing Item - <project name> window closes, and the selected files appear in the Source Files folder in Solution Explorer. Some examples with the "use" statements require the next two steps.
The Additional Library Directories window opens.

1_VS2008中使用MFC开发基于Halcon10的对话框配置(1_VS08MFC_H10_01)

1_VS2008中使用MFC开发基于Halcon10的对话框配置(1_VS08MFC_H10_01)

VS2008中使用MFC开发基于Halcon10的配置--以基于对话框的MFC应用程序为例。

第一步,建立MFC应用程序,给工程取个名字叫1_VS08MFC_H10_01,如下图所示:打开visual studio 2008->文件->新建->项目->Visual C++->MFC->MFC应用程序->输入程序名称->确定第二步,选择基于对话框的应用程序,如下图所示:第三步:在本例中,我们在对话框中,添加两个按钮,一个按钮用来加载图片,一个用来处理图片,如下所示:第四步:附加包含目录的配置(#include ***.h)C:\Program Files\MVTec\HALCON-10.0\include;C:\Program Files\MVTec\HALCON-10.0\include\cpp第五步:链接器的配置(库(*.lib)的名称和索引)halconcpp.libC:\Program Files\MVTec\HALCON-10.0\lib\x86sse2-win32第六步:C++目录的配置【】工具->选项->项目和解决方案->VC++6.1 包含文件C:\Program Files\MVTec\HALCON-10.0\include;C:\ProgramFiles\MVTec\HALCON-10.0\include\cpp6.2 库文件C:\Program Files\MVTec\HALCON-10.0\lib\x86sse2-win32经过以上六步,恭喜你,VS 2008配置Halcon 10算是大功告成。

接下来就是好戏上演的时刻了,我们要开始编代码来演示我们的例子了。

第七步:在1_VS08MFC_H10_01Dlg.h文件开始处,添加代码:#include "halconcpp.h"using namespace Halcon;注意,如果你安装的Halcon版本是11.0.0.1的话,实际上这个版本仍然和Halcon10一样,使用的是Halcon命名空间,而不是HalconCpp。

VS2008 解决方案的目录结构设置和管理

VS2008 解决方案的目录结构设置和管理

/tech/devlodoc/C/?page=2VC 2008 解决方案的目录结构设置和管理一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。

除此以外,根据项目的需求,还会使用一些第三方的库。

所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够使得最终应用程序的安装包制作,源代码打包发布和转移变得十分容易。

解决方案与项目:从VC6之后VC系列就使用解决方案(Solution)来替代原来的工作空间,用于组织和管理多个相关的项目(Project)。

文章首先演示一个虚拟的解决方案和我们期望得到的目录结构,然后使用VC2008的项目设置功能来一步一步达到我们的需求。

虚拟解决方案:该虚拟解决方案名为GMA,包含一个动态链接库项目ChocolateMilk和一个应用程序项目PureMilk,需要使用一个第三方库log4cxx(Apache log4j的C++移植版本,用于日志输出)。

log4cxx是以动态库的方式编译的,所以我们需要它的3样东西,分别是头文件,导入库(log4cxx.lib, log4cxxd.lib)和动态链接库(log4cxx.dll)。

假设我们期望的目录结构如下图:1. GMA是解决方案目录2. PureMilk和ChocolateMilk是项目目录3. Lib目录用于存放导入库或者静态库(包括第三方库和自己的项目)4. Include用于存放第三方库的头文件5. Bin目录存放所有动态链接库和执行档,包括自己的产出和第三方库,区分Release和Debug两个版本。

另外,程序运行过程中需要外部的数据文件和启动时需要的配置文件等等都可放于该目录6. Temp用于存放临时生成文件,其中Compile存放编译器编译时生成的obj文件,Link存放链接器的输出文件。

vs2008 使用技巧

vs2008 使用技巧

vs2008 使用技巧VS2008是微软开发的一款集成开发环境,提供了丰富的功能和工具来开发和调试应用程序。

本文将介绍一些VS2008的使用技巧,以提高开发效率。

1.快速查找文件:使用快捷键Ctrl + , 可以快速打开一个文件。

通过输入文件名的一部分,VS2008会自动筛选出匹配的文件,并显示在下拉列表中。

这个功能对于查找和导航项目中的大量文件非常有用。

2.智能代码提醒:VS2008内置了强大的智能代码提醒功能,可以根据上下文自动填充代码。

例如,当输入一个对象名后,按下“.”键,VS2008会显示出对象的成员列表,以便你选择和补全代码。

这大大提高了编写代码的速度和准确性。

3.快速重命名:在VS2008中,你可以使用快捷键Ctrl + R,Ctrl + R来快速重命名变量、方法或类名等。

只需将光标定位到要重命名的标识符上,按下快捷键后,VS2008会自动修改所有引用该标识符的地方,避免了手动修改的麻烦。

4.代码折叠:VS2008支持代码折叠功能,可以折叠和展开代码块,以便更好地组织和浏览代码。

只需单击代码左侧的“+”或“-”图标,即可折叠或展开代码块。

这对于浏览大型代码文件或隐藏不需要关注的代码段非常有帮助。

5.调试窗口:VS2008提供了丰富的调试功能,可以帮助我们定位和解决程序中的错误。

在调试模式下,可以通过查看“局部变量”、“自动变量”和“表达式”窗口中的值,来监视变量的实时变化。

还可以设置断点和单步调试等功能,以逐行执行程序并观察代码的运行情况。

6.自动格式化代码:VS2008有一个称为“格式化选择部分”的功能,可以将选中的代码自动格式化为规范化的样式。

只需选中要格式化的代码,然后按下快捷键Ctrl + K, Ctrl + F,VS2008会自动对选中的代码进行排版和缩进,使代码看起来更加整洁和易读。

7.使用插件:VS2008支持第三方插件,可以通过安装插件来扩展其功能。

一些著名的插件如ReSharper、Visual Assist等,在代码编写和重构、代码导航、代码自动补全等方面提供了更强大的功能和工具。

北风网MFC系列 第二讲 VS2008调试环境的使用

北风网MFC系列 第二讲 VS2008调试环境的使用
掌握启动调试环境的主要方法 掌握各调试信息窗口的作用和使用方法 掌握定位最终错误位置的正确方法 掌握应用程序调试版本和发行版本的区别 及编译方法源自跟踪 断点 查看变量 更改数值
利用调试运行启动调试环境 利用调试版错误启动调试环境 附加到已有的进程
当需要远程调试或调试 智能设备时 浏览网上邻居设定目标机器 设定机器调试的目标机器
显示当前登录用户的 所有进程
显示当前环境中所有的 进程包括服务进程
附加到进程中之后挂起线程可以查看进程 中的一些调试信息 之后可以选择线程进行单步执行
掌握调试版程序报错的规律再现错误 点击重试启动VS2008调试环境 查看线程 查看堆栈 一般系统函数或MFC的方法不会出错因此 在堆栈上找到最靠近错误处的第一个自定 义函数 观察参数 观察局部变量 查看错误代码信息
查看数组元素 查看内存数据 查看HRESULT型的错误信息 使用消息框 调试输出 使用断言 对象倾倒 检测内存泄露 编辑并继续调试 调试Windows NT服务
掌握启动调试环境的主要方法 掌握各调试信息窗口的作用和使用方法 掌握定位最终错误位置的正确方法 掌握应用程序调试版本和发行版本的区别 及编译方法

vs2008-omniORB+4.1配置

vs2008-omniORB+4.1配置
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称 为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户 很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此 之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不 讨论)
运行成功应该显示 Time is1
debug 和 release 的区别
1。Debug 和 Release 有什么区别,为什么要使用 Release 版本! 2。怎么把 Debug 转成 Release
Debug 版本包括调试信息,所以要比 Release 版本大很多(可能大数百 K 至 数 M)。至于是否需要 DLL 支持,主要看你采用的编译选项。如果是基于 ATL 的,则 Debug 和 Release 版本对 DLL 的要求 差不多。如果采用的编译 选项为使用 MFC 动态库,则需要 MFC42D.DLL 等库支持,而 Release 版本 需要 MFC42.DLL 支持。Release Build 不对源代码进行调试,不考虑 MFC 的诊断宏,使用的是 MFC Release 库,编译十对应用程序的速度进行优化,而 Debug Build 则正好相反,它允许对源代码进 行调试,可以定义和使用 MFC 的诊断宏,采用 MFC Debug 库,对速度没有优化。 一、Debug 和 Release 编译方式的本质区别
参考文章 一、下载 OmniORB VS2005 下载 omniORB‐4.1.4‐x86_win32‐vs8.zip,VS2008 下载 omniORB‐4.1.4‐x86_win32‐vs9.zip 下载后解压到任意目录即可,本人解压后为 D:\DevAssist\omniORB-4.1.4 二、配置环境变量 计算机右键单击属性->高级环境系统设置->系统环境变量 Path 后面加上 omniORB 路径\bin\x86_win32

Visual Studio 2008 SP1 MFC新增功能包编程简介

Visual Studio 2008 SP1 MFC新增功能包编程简介

第13章 MFC功能包编程简介VS08 SP1所含的VC08的MFC功能包(MFC Feature Pack for Visual C++ 2008),在MFC 9.0的基础上增加137个新类(及86个内部类)和1个新结构。

功能包对传统MFC库进行了扩展,以支持时髦的现代用户界面元素,如Office Fluent(流畅)UI、停靠窗口和MDI选项卡(tab)窗口(似Visual Studio 2005/2008)、增强型工具条、丰富的新控件集、支持总体视觉样式(overall visual style)、支持桌面报警(desktop alerts)等等。

程序员可以利用该功能包编写具有类似于微软公司新版的Microsoft Office、Visual Studio或Internet Explorer等流行界面视觉样式的应用程序。

MFC功能包的改进主要体现在新型用户界面上,主要包括:功能区(ribbon)、选项卡(tab)窗口和窗格(pane)、视觉样式切换(换肤)、可停靠与自动隐藏的控制条和窗格等。

MFC功能包的帮助信息,位于MSDN的“目录\开发工具和语言\Visual Studio文档\Visual C++\参考信息\Libraries Reference\MFC Feature Pack for Visual C++ 2008”,主要内容在其“Reference\Classes”子目录中。

在VS2010中,MFC功能包已被完全并入MFC,所以其帮助系统也被并入标准的MFC 帮助系统之中,位于MSDN的“目录\开发工具和语言\Visual Studio文档\Visual C++\参考信息\Libraries Reference\MFC”,主要内容也在其“Classes”子目录中。

13.1 新增功能MFC功能包在用户界面方面增加了许多新功能,包括对传统界面元素的改进和若干新增的界面元素。

13.1.1 传统界面元素的改进MFC功能包,对菜单、工具条、对话框和控件等传统界面元素,进行了大量改进,以适应时髦用户界面的需要。

在VS2008下如何建立一个MFC应用程序

在VS2008下如何建立一个MFC应用程序

Vs2008下如何建立一个MFC的应用程序。

1、依次点击文件,新建,项目,如下图所示图一2、在弹出的图二中,选中“MFC”,然后选择“MFC应用程序”,在相应框中输入项目名称。

按确定按钮,出现图三。

注意:如果接受“创建解决方案的目录”,则会在工程名目录下又产生一个以工程名为名的子目录,在该子目录下有该工程所有的源文件。

图二图三3、图三是项目wingreet的缺省设置。

按《下一步》按钮,就进入图四的《MFC 应用程序向导的应用程序类型》,按照图四中的选择图四 MFC 应用程序向导的应用程序类型使用Unicode 库指定是使用Unicode 版MFC 库还是使用非Unicode 版MFC 库。

视觉样式和颜色确定应用程序的视觉样式。

下列选项可用:Windows 本机/默认设置Office 2003Visual Studio 2005Office 2007 (蓝色主题)Office 2007 (黑色主题)Office 2007 (银色主题)Office 2007 (水绿色主题)启用视觉样式切换指定在运行时,用户通常是否可以通过从菜单或工作区中选择适当的视觉样式来更改应用程序的视觉样式。

4、按《下一步》按钮,弹出图五。

图五5、接收缺省设置,按《下一步》按钮,弹出图六。

图六6、按《下一步》按钮,弹出图七。

图七7、按《下一步》按钮,弹出图八。

图八8、在图八中按图中所示选择,按《下一步》按钮,弹出图九。

9、在图九中按图中所示进行选择,按《下一步》按钮,弹出图十。

图十10、按《完成》按钮,出现主界面。

图十一按F5 键,编译连接,如果没错误,会在目录下的debug子目录下生成可执行文件wingreet.exe,然后开始运行。

出来的窗口如下:如何打开工程或解决方案在win7下先打开vs2008再打开工程,后缀是vcproj技巧:(1)工具箱不显示”自动隐藏”,即“自动隐藏”变灰的解决办法出现工具箱窗口后,双击该工具箱窗口(2)删除类中的函数vc6 中可以通过选中该函数,右键单击出现快捷菜单,在菜单中有Delete。

关于vs2008SP1中CMFCToolBar的一些事儿

关于vs2008SP1中CMFCToolBar的一些事儿

关于vs2008SP1中CMFCToolBar的一些事儿话说昨天解决了MFC跨线程操作控件的问题,我满以为今天可以free一回,玩玩Linux、学学Vim、再准备一下毕业论文的事情,但还是有事情要做,然后又是“被”MFC郁闷了一天。

先介绍一下总体的情况。

我们项目客户端的开发环境是VS2008+SP1,用的是MFC类库,里面居然用到了CMFCToolBar、CMFCMenuBar以及Appearance变化等的SPI新特性。

说“居然”是因为这些东西不是项目必要的,当时可能也以为只是名字变了用法没变,估计在工程创建的时候根本就没有考虑这些,直接按着单文档工程默认配置,next、next直接创建完的,囧!当时做的时候也只是当作测试Demo来用,也没太在意,毕竟我们项目的重点在服务器而非这个MFC客户端。

后来由于项目原因,甲方要求我们把这个客户端尽快修改成一个可以发布版本。

不改不知道,一改吓一跳,当准备动手修改工具栏时才发现与以前惯的CToolBar真实差距甚大。

CToolBar可以用CImageList把自定义的BMP图片放到工具栏的按钮,详细可看这里,CMFCToolBar 根本就不是这样的一个玩法。

直接放一个CT oolBar上来,在DockControlBar()的时候会出现断言错误(缺少DockBar,貌似是这个名字,汗!)。

定位代码到MainFrm的EnableDocking(),现在的MainFrm的继承关系是CMainFrm->CFrameWndEx->CFrameWnd,而以前是CMainFrm->CFrameWnd,CFrameWndEx::EnableDocking()是为DockPane()服务的,而DockControlBar()需要的DockBar并不会被初始化。

调用基类的CFrameWnd::EnableDocking()后再DockControlBar()不会出现断言,但是那个工具栏没有显示。

Visual-C++-2008-SP1-MFC-(OFFICE界面)使用入门

Visual-C++-2008-SP1-MFC-(OFFICE界面)使用入门

图形画板2008设计文档目录1. 图形后台框架1.1. 基本图形类框架如下:2. 界面框架2.1. 快捷菜单2.2. 主菜单2.3. 工具栏3. 如何创建OFFICE风格的MFC工程4. 如何在工具栏上面添加按钮4.1. 添加菜单主项4.2. 为菜单项添加事件4.3. 添加Ribbon字符4.4. 将按钮添加到工具栏4.4.1. 创建主类别(CMFCRibbonCategory)4.4.2. 创建面板(CMFCRibbonPanel)4.4.3. 添加按钮(CMFCRibbonButton)到面板••1. 图形后台框架1.1. 基本图形类框架如下:2. 界面框架主用应用了Visual Studio 2008 SP1添加的新增强包,可以方面的创建出像OFFCIE2007的Ribbon 界面。

Ribbon工具栏是在MainFrm.CPP中的void CMainFrame::InitializeRibbon()生成的整个工具栏CMFCRibbonBar分为2.1. 快捷菜单2.2. 主菜单主菜单按钮CMFCRibbonApplicationButton主菜单CMFCRibbonMainPanel2.3. 工具栏主要分成3层结构:第一层:分类(容器) CMFCRibbonCategory,如图中红色部分所示。

第二层:面板(容器) CMFCRibbonPanel ,如图中红色部分所示。

第三层:元素 CMFCRibbonBaseElem,如图中红色部分所示。

先有一个整体的概念~3. 如何创建OFFICE风格的MFC工程以下是创建Visual C++ 2008 SP1创建Office风格的MFC的步骤:首先,新建项目,选择Visual C++ 中的MFC应用程序,输入名称,点击确定接着选择Office的项目类型,MFC的使用选择“在静态库中使用MFC”(这样可以保证在任何Windows系统中都能正确运行,如果选择共享DLL,则只能在有MFC7.0库的机子上正确运行,所以推荐选“在静态库中使用MFC”)接下来的几个步骤都直接按默认即可这里我们先将“导航窗格”的勾去掉(由于本程序没有用到它,所以再此不详细介绍)这里将视图类的基类选为CScrollView,点击完成然后运行一下,基本的雏形就出来啦,简单吧~4. 如何在工具栏上面添加按钮4.1. 添加菜单主项接着继续添加菜单子项,并在属性栏中设置相应的属性,注意Prompt要按照“解释\n标题”这种格式,例如:Prompt绘制一个圆\n画圆做完要记得保存哦4.2. 为菜单项添加事件右键点击需要添加事件的选项,选择添加“事件处理程序”点击“添加编辑”,然后就到视图类的结尾找到这个事件的函数,开始编写事件,可以注意到“函数处理程序名称”是根据“命令名”自动生成的,虽然自己也可以修改,不过还是按默认的比较好,所以也说明上面提到的加入ID时候要根据这样的命名规则来命名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.tools->options->Projects and solutions->VC++ Directories
a)Show directories for -> Executable files->add mkl的安装目录下的bin:如:
“D:\Program Files\Intel\MKL\10.0.3.021\ia32\bin”
b)Show directories for -> Include files ->add mkl 的include目录,如“D:\Program
Files\Intel\MKL\10.0.3.021\include”
c)Show directories for -> Library files -> add mkl 的lib目录,如”D:\Program
Files\Intel\MKL\10.0.3.021\ia32\lib”
2.在自己创建的工程里面添加:Project->…Properties
Linker->Input->Additional Dependencies 添加
a)mkl_c.lib
b)libguide40.lib
c)mkl_solver.lib
d)mkl_core.lib
e)libguide.lib(可能不用)
f)libiomp5mt.lib(可能不用)
此外,有人推荐使用的库
/en-us/forums/intel-ma th-kernel-library/topic/62018/
mkl_intel_c.lib
mkl_intel_thread.lib
mkl_core.lib
libiomp5md.lib
可以参见userguide.pdf chapter 5
/en-us/forums/intel-math-kernel-library/topic/62018/
Visual Studio* 2008 or Microsoft* Visual Studio* 2005:
1.Select View » Solution Explorer (and make sure this window is active).
2.Select Tools » Options » Projects and Solutions » VC++ Directories.
3.In the drop down menu titled Show directorie s for:, select Include Files, and then
type in the directory for the Intel MKL include files (e.g. default: C:\Program
Files\Intel\MKL\10.0\include).
4.In the drop down menu titled Show directorie s for: select Library Files, and then
type in the directory for the Intel MKL library files (e.g. default: C:\Program
Files\Intel\MKL\10.0\ia32\lib).
5.In the drop down menu titled Show directorie s for: select Executable Files, and
then type in the directory for the Intel MKL executable files (e.g. default: C:\Program
Files\Intel\MKL\10.0\ia32\bin).
6.On the main toolbar select Project » Properties » Configuration Properties »
Linker » Input and in the "Additional Dependencies" line, add the libraries you require
As Todd mentioned, for a 32-bit system something like the following could be used:
mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
For more information about Linking application with Intel® MKL version 10.0 you can find in userguide.pdf chapter 5 ).
--Gennady
3.在使用MKL时容易出现所调用的函数因为MKL本身而内存泄漏,此时在调用计算函
数结束时使用
MKL_FreeBuffers();
可以解决问题。

4.找不到有关的dll的解决办法
a)在我的电脑-》右键-》属性-》高级-》环境变量-》系统环境
变量-》path中添加安装的目录,如:“D:\Program Files\Intel\MKL\10.1.0.018\ia32\bin”即可解决
5.
/software/products/zho/docs/MKL90_1stUseDoc_SC/m klnotes_cluster_lnx.htm
内存分配:为达到更好的性能,“英特尔MKL”分配的内存不会释放。

这种行为是特别设计的,对于需要工作区内存缓冲区的所有“英特尔MKL”例程,内存分配都是一次性的。

即使如此,用户还是应该注意到有些工具可能会将这种情况报告为内存泄漏。

用户如果愿意,可以通过“英特尔MKL”中提供的函数
(MKL_FreeBuffers()),由用户程序来释放内存,此外还可以通过设置环境变量(MKL_DISABLE_FAST_MM),在每个调用完成后释放内存(如需有关详细信息,请参阅 doc 目录中的用户技术说明)。

使用这些方法之一来释放内存不见得一定会让这些程序停止报告内存泄漏,事实上如果多次调用该函数库,从而要求每次调用都新分配内存,则可能还会增加报告这种情况的次数。

程序结束时,未使用所述方法之一释放的内存会由系统来释放。

每个线程中分配的最大缓冲区数为32。

要避免此限制,请按以上所述禁用内存管理。

在我的电脑-》属性-》高级-》环境变量-》系统环境变量-》添加:变量MKL_DISABLE_FAST_MM,值为任意,如1。

相关文档
最新文档