已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 VC+AE 系列 实现对图层的标注、简单渲染 标注图层:1. void CAOTestView:OnCartoLabel()2. 3. / TODO: Add your command handler code here4.5. HRESULT hr;6. IMapPtr pMap= m_ctrlMap.GetMap(); /m_ctrlMap是MapControl的控件变量7. ILayerPtr ipLayer=NULL;8. pMap-get_Layer(m_ctrlMap.GetLayerCount()-1,&ipLayer); /获取最后的图层9.10. ILabelEngineLayerPropertiesPtr pLBProp;11. IAnnotateLayerPropertiesPtr pALProp;12. IAnnotateLayerPropertiesCollectionPtr pALProps;13. IGeoFeatureLayerPtr pGeoFeatLyr= ipLayer;14.15. if(NULL=pGeoFeatLyr)16. return ;17. hr=pGeoFeatLyr-get_AnnotationProperties(&pALProps);18. hr=pALProps-QueryItem(0,&pALProp,NULL,NULL);19. if(NULL=(pLBProp=pALProp)20. return ;21. pLBProp-put_IsExpressionSimple(VARIANT_TRUE);22. pLBProp-put_Expression(_bstr_t)Height);/设置标注字段,大家拷过去时要改下字段名23.24. /创建标注符号25. IFormattedTextSymbolPtr pFormatTxtSym(CLSID_TextSymbol);26.27.28. /自己设置符号的样式/29. / /设置标注的字体30. / IFontPtr pFont(_uuidof(StdFont);31. / pFont-put_Name(_bstr_t) Courier New);/字体集32. / CY cy;33. / cy.Hi = 10 * 72;34. / cy.Lo = 8 * 72;35. / pFont-put_Size(cy);36. / pFont-put_Bold(TRUE);37. / pFormatTxtSym-put_Font(IFontDispPtr)pFont) ;38. /39. / /设置标注的颜色40. / IColorPtr pColor;41. / pFormatTxtSym-get_Color(&pColor);42. / hr=pColor-put_RGB(RGB(0,120,0);/深绿色43. / if(FAILED(hr) return;44. / hr=pFormatTxtSym-put_Color(pColor);45.46. /从样式库文件中获取符号的样式/47. IStyleGalleryItemPtr pSGitem=NULL;48. IEnumStyleGalleryItemPtr pEnumSGitem;49. IStyleGalleryPtr pStyleGall(CLSID_ServerStyleGallery);50. IStyleGalleryStoragePtr pSGstorage(pStyleGall);51. CString strStyleFile=C:Program FilesArcGISStylesESRI.ServerStyle;52. CString strStyleClass=Text Symbols;53.54. /获取样式文件55. pSGstorage-put_TargetFile(_bstr_t)strStyleFile);56. pStyleGall-get_Items(_bstr_t)strStyleClass,(_bstr_t)strStyleFile,57. (_bstr_t),&pEnumSGitem);58. if (NULL=pEnumSGitem)59. 60. MessageBox(获取样式集失败!);61. return;62. 63.64. BSTR bsName;65. pEnumSGitem-Reset();66. pEnumSGitem-Next(&pSGitem);67.68. if (NULL=pSGitem)69. 70. MessageBox(获取样式项失败!);71. return;72. 73. IUnknownPtr pUnk;74. pSGitem-get_Item(&pUnk);75. if (NULL=(pFormatTxtSym=pUnk)76. 77. return;78. 79.80. pLBProp-putref_Symbol(pFormatTxtSym);81. pGeoFeatLyr-put_DisplayAnnotation(VARIANT_TRUE);/显示标注82.83. IActiveViewPtr pAV=m_ctrlMap.GetActiveView();84. pAV-Refresh();85. 复制代码 渲染图层渲染前:渲染后:1. void CAOTestView:OnCartoRender()2. 3. / TODO: Add your command handler code here4.5. HRESULT hr;6. IActiveViewPtr ipAV=m_ctrlMap.GetActiveView();7. IMapPtr ipMap=m_ctrlMap.GetMap();8. ILayerPtr ipLyr;9.10. hr=ipMap-get_Layer(0,&ipLyr);/图层要点状的11. if (FAILED(hr)12. return ;13.14. /简单渲染15. ISimpleRendererPtr ipSimpleRnder;16. IFeatureRendererPtr ipRnder;17. IGeoFeatureLayerPtr ipGeoFeaLyr;18.19. if (ipGeoFeaLyr=ipLyr)=NULL)20. return ;21. hr=ipGeoFeaLyr-get_Renderer(&ipRnder);22. if (ipSimpleRnder=ipRnder)=NULL)23. 24. hr=ipSimpleRnder.CreateInstance(CLSID_SimpleRenderer);25. if(FAILED(hr)26. return ;27. ipRnder=ipSimpleRnder;28. 29.30.31. /创建一个简单的点状符号32. ISimpleMarkerSymbolPtr ipSymbol(CLSID_SimpleMarkerSymbol);33.34. IColorPtr ipColor;35. hr=ipSymbol-get_Color(&ipColor);36. if(FAILED(hr)37. return ;38. hr=ipColor-put_RGB(RGB(255,0,0);/红色39. if(FAILED(hr)40. return ;41. hr=ipSymbol-put_Color(ipColor);42. if(FAILED(hr)43. return ;44. hr=ipSymbol-put_Style(esriSMSCircle);/圆形45. if(FAILED(hr)46. return ;47.48. /设置渲染49. hr=ipSimpleRnder-putref_Symbol(ISymbolPtr)ipSymbol);50. if(FAILED(hr) return ;51. hr=ipSimpleRnder-put_Label(_bstr_t)CSU_DXC);52. if(FAILED(hr) return ;53. hr=ipGeoFeaLyr-putref_Renderer(ipRnder);54. if(FAILED(hr) return ;55.56. hr=ipAV-ContentsChanged();57. hr=ipAV-Refresh();58. if(FAILED(hr) return ;59. 复制代码本帖最后由 dxcgis 于 2008-7-31 17:16 编辑AOTest_StyleManager.JPG(61.55 KB)StyleManager ArcMap中的样式管理器2 VC+AE系列 实现要素的编辑、移动、删除等功能 具体操作步骤:一、选取要素。 通过鼠标在MapControl中拉框选取要素(同时按住shift键)。二、进行编辑、移动、删除操作。 编辑:1、在MapControl中双击,弹出对话框,对话框默认显示要素原值。2、在对话框中输入要素的新值。3、 单击OK完成编辑。 移动:选中要素后,按住鼠标拖动到合适的位置即可。 删除:选中要素后,按Delete键删除要素。定义变量BOOLm_bMove;BOOLm_bSel;IScreenDisplayPtr ipDisp;IActiveViewPtr m_pAV;IMapPtrm_ipMap;IFeatureLayerPtrm_ipFeatLyr;IMovePointFeedbackPtr m_ipMPFdbk; /移动点FeedbackINewEnvelopeFeedbackPtr m_ipNEFdbk;/新矩形框FeedbackIFeaturePtr m_ipCurFeat;初始化设置(可在相应的菜单事件中添加)m_pAVm_ctrlMap.GetActiveView();m_ipMap=m_ctrlMap.GetMap();/取得图层ILayerPtr ipLayer ;m_ipMap-get_Layer(0,&ipLayer);m_ipFeatLyr = ipLayer;/设置编辑图层为唯一可选,此处设TOC中最上面的图层为编辑图层hr=m_ipMap-ClearSelection();if (FAILED(hr)return FALSE;long nLyrCnt;m_ipMap-get_LayerCount(&nLyrCnt);for(long i=0; iget_Layer(i,&ipLayer);IFeatureLayerPtr ipFeatLyr = ipLayer;if(ipFeatLyr != m_ipFeatLyr) ipFeatLyr-put_Selectable(VARIANT_FALSE);m_ipFeatLyr-put_Selectable(VARIANT_TRUE);/创建显示反馈对象m_pAV-get_ScreenDisplay(&ipDisp);m_ipNEFdbk.CreateInstance(CLSID_NewEnvelopeFeedback);m_ipNEFdbk-putref_Display(ipDisp);m_ipMPFdbk.CreateInstance(CLSID_MovePointFeedback);m_ipMPFdbk-putref_Display(ipDisp);在View 类的 MouseDown 事件中添加如下代码OnOnMouseDownControl(long button, long shift, long x, long y, double mapX, double mapY) if (shift!=1) /未按shift键则返回return;HRESULT hr;IPointPtr ipCurPnt(CLSID_Point);hr=ipCurPnt-PutCoords(mapX,mapY);if (FAILED(hr)return ;/若无选中要素,则为选择操作,否则是移动操作if (NULL=m_ipCurFeat)m_ipNEFdbk-Start(ipCurPnt);m_bSel = TRUE;elseIGeometryPtr ipGeo;hr=m_ipCurFeat-get_Shape(&ipGeo);IPointPtr ipPoint(ipGeo);m_ipMPFdbk-Start(ipPoint,ipCurPnt);m_bMove = TRUE;在View 类的 MouseMove 事件中添加如下代码OnOnMouseMoveControl(long button, long shift,long x, long y, double mapX, double mapY) if (shift!=1)/未按shift键则返回return;if(m_pAV=NULL | m_ipMap= NULL)return;IPointPtr ipPoint(CLSID_Point);ipPoint-PutCoords(mapX,mapY);/注意判断的顺序m_bSel要在(m_ipCurFeat=NULL)前,不然,程序崩溃,建议多写几个ifif( m_bSel & m_ipNEFdbk != NULL & m_ipCurFeat=NULL)m_ipNEFdbk-MoveTo(ipPoint);else if(m_ipMPFdbk != NULL & m_bMove)m_ipMPFdbk-MoveTo(ipPoint);在View 类的 MouseUp 事件中添加如下代码:OnOnMouseUpControl(long button, long shift, long x, long y, double mapX, double mapY) if (shift!=1)/未按shift键则返回return;if(m_pAV=NULL | m_ipMap= NULL)return;if(m_bSel)/*m_ipCurFeat=NULL */ IEnvelopePtr ipEnv;m_ipNEFdbk-Stop(&ipEnv);m_ipMap-SelectByShape(ipEnv,NULL,VARIANT_TRUE);m_pAV-PartialRefresh(esriViewGeoSelection,NULL,NULL);IFeatureSelectionPtr ipFeatSel(m_ipFeatLyr);ISelectionSetPtr ipSelSet;ipFeatSel-get_SelectionSet(&ipSelSet);/搜索光标可以获取用查询过滤确定的行IQueryFilterPtr ipQF(CLSID_QueryFilter);ICursorPtr ipCursor;ipSelSet-Search(ipQF,VARIANT_TRUE,&ipCursor);IRowPtr ipRow;ipCursor-NextRow(&ipRow);m_ipCurFeat = ipRow;m_bSel = FALSE;else if(m_bMove)IPointPtr ipPoint;m_ipMPFdbk-Stop(&ipPoint);IGeometryPtr ipGeo(ipPoint);m_ipCurFeat-putref_Shape(ipGeo);m_ipCurFeat-Store();m_ipCurFeat=NULL;m_ipMap-ClearSelection();m_pAV-Refresh();m_bMove = FALSE;在View 类的 DoubleClick 事件中添加如下代码:OnOnDoubleClickControl(long button, long shift, long x, long y, double mapX, double mapY)if (NULL=m_ipCurFeat)AfxMessageBox(Feature is Null);return;VARIANT var;CString strFeatName;CDlgHospital dlg; /这是一个对话框类,提供一个文本框实现要素名称的输入。m_ipCurFeat-get_Value(1,&var);/取得要素的原值strFeatName=var.bstrVal;dlg.m_sName=strFeatName;if (dlg.DoModal()!=IDOK)return ;strFeatName=dlg.m_sName;m_ipCurFeat-put_Value(1,(_variant_t)strFeatName);m_ipCurFeat-Store();m_pAV-Refresh();在View 类的 OnKeyDown 事件中添加如下代码:OnOnKeyDownControl(long keyCode, long shift)if(NULL=m_ipCurFeat)AfxMessageBox(Feature is Null);return ;if(keyCode=VK_DELETE)if(AfxMessageBox(删除选定点?, MB_OKCANCEL) = IDCANCEL) return;m_ipCurFeat-Delete();m_ipCurFeat=NULL;m_ipMap-ClearSelection();m_pAV-Refresh();3 VC+AE实现TocControl图层拖放功能在mousedown事件中要将ITocControl 和ITocControlDefault的变量m_ipTocControl和m_TocControl关联void CHngdView:OnMouseDownToccontrol1(long button, long shift, long x, long y)/ TODO: Add your control notification handler code hereHRESULT hr;IGroupLayerPtr grouplayer(CLSID_GroupLayer);enum esriTOCControlItem ItemType; /枚举型的变量ItemType=esriTOCControlItemNone;CPoint pt;IBasicMapPtr BasicMap=NULL;LPUNKNOWN pUnk;VARIANT Data;m_ipTocControl=m_TocControl.GetObject();/给m_ipTOC赋值,m_ipTOC是ITOCControl接口,在CView类中声明IBasicMapPtr ipMap;VariantInit(&Data);hr=m_ipTocControl-HitTest(x,y,&ItemType,&ipMap,&m_ipLayer,&pUnk,&Data);if(FAILED(hr)return ;if(button=2&ItemType=esriTOCControlItemLayer)pt.x=x;pt.y=y;CMenu menu;menu.LoadMenu(IDR_POPMENU);CMenu *pPopup=menu.GetSubMenu(0);ClientToScreen(&pt);pPopup-TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x+10,pt.y+5,this);else if(button=1&m_ipLayer!=NULL)m_drag=true;ILayerPtr tmpLayer;long count;hr=ipMap-get_LayerCount(&count);for(int i=0;iget_Layer(i,&tmpLayer); grouplayer-Add(tmpLayer); if(tmpLayer=m_ipLayer) m_layerindex=i; m_GroupLayer=grouplayer;在mousemove事件中if(m_drag=true)HRESULT hr;enum esriTOCControlItem ItemType; /枚举型的变量ItemType=esriTOCControlItemNone;LPUNKNOWN pUnk;VARIANT Data;IBasicMapPtr ipMap;VariantInit(&Data);hr=m_ipTocControl-HitTest(x,y,&ItemType,&ipMap,&m_ipLayer,&pUnk,&Data);if(FAILED(hr) return;if(ItemType=esriTOCControlItemLayer) ILayerPtr tmpLayer1; long count1=0; hr=ipMap-get_LayerCount(&count1); if(FAILED(hr) return; if(count1=1) m_ipTocControl-put_MousePointer(esriPointerNoDrop); else m_ipTocControl-put_MousePointer(esriPointerLabel); for(int i=0;iget_Layer(i,&tmpLayer1); if(tmpLayer1=m_ipLayer) m_movetolayer=i; else if(m_movetolayer!=m_layerindex) m_move=true;在mouseup事件中m_drag=false;m_ipTocControl-put_MousePointer(esriPointerArrow);if(m_move=true)ILayerPtr copylayer;ILayerPtr copylayer0;ILayerPtr changelayer;long groupcount;ICompositeLayerPtr m_Compositelayer;m_Compositelayer=m_GroupLayer;m_Compositelayer-get_Count(&groupcount);m_Compositelayer-get_Layer(m_layerindex,©layer0);m_Compositelayer-get_Layer(m_movetolayer,&changelayer);m_ipMapControl-ClearLayers();m_ipTocControl-SetBuddyControl(NULL);for(int i=0;iget_Layer(i,©layer); if(i=m_layerindex) m_ipMapControl-AddLayer(changelayer,m_layerindex); else if(i=m_movetolayer) m_ipMapControl-AddLayer(copylayer0,m_movetolayer); else m_ipMapControl-AddLayer(copylayer,i);LPUNKNOWN pMapUnk=m_MapDlg.m_MapControl.GetControlUnknown();LPDISPATCH pDisp=0;pMapUnk-QueryInterface(IID_IDispatch,(void *)&pDisp);m_TocControl.SetBuddyControl(pDisp);pDisp-Release();m_move=false;请各位多多指教哈4 AO开发笔记(实战篇)用VC+AO开发独立的应用程序(1)作者:Snoopy文章来源:中国3S网站()点击数:3331更新时间:2006-12-11一、AO简介ArcObject(以下简称AO)是ESRI公司构建ArcGIS系列软件的基础技术框架,是一个庞大的COM组件集。AO不是为最终用户提供的,它是为开发人员提供的二次开发组件,通过AO用户可以实现功能强大的应用软件,据说如果水平足够高,用它可以开发出一套ArcMap来。只要用户购买来ESRI的产品,都会拥有AO组件,从ArcGIS9.0开始,ESRI推出了ArcEngine,使得用AO开发的程序不再需要ArcGIS Desktop,只需要购买安装ArcEngine运行时即可。由于AO是基于COM技术开发出的组件式GIS开发产品,因此可以选择自己熟悉的支持COM标准的开发平台来进行GIS应用开发,如:Visual C+、Visual Basic、Delphi、.NET等,另外也可以在ArcGIS上使用VBA环境进行二次开发。在真正用AO来进行GIS应用开发之前,至少需要熟悉一种开发平台、COM开发的一些基本知识。在以后的文章中将以Visual C+6.0为开发工具进行介绍,并且假定你对Visual C+6.0有一定的了解,对COM应用也有一定的认识。在我们开始编写第一个程序之前,你的系统中除了要安装Visual C+6.0之外,还应该安装有ArcGIS Desktop和ArcGIS DeveloperKit,或者装有ArcEngine开发包和运行包。在ArcGIS DeveloperKit和ArcEngine开发包里都有AO的开发文档以及几种开发语言的实例,一般安装在:ArcGIS安装路径ArcGISDeveloperKit下面。在开发文档中除了各种接口和类的介绍外,还有DeveloperKitsamples下面的实例的介绍,里面有许多实用的例子是我们学习AO编程好资料。二、实现一个简单的AO程序接下来我们就从最简单的一个可以打开地图的例子开始。首先新建一个MFC的项目,如下图:点击OK按钮进入下一步:选择Single document点击Next在后面的几步中选择默认设置,在最后一步时,选择View类的基类为CFormView,如下图:点击Finish,新的项目就建好了。接下来右键点击From对话框,在出现的菜单里选择Insert ActiveX Controls。在出现的对话框里选择ESRI MapControl,确定。接下来查看修改ESRI MapControl的属性(如下图),选择Control页,在Map Document:处选择一个mxd/mxt/pmf文件,即要加载的地图文档。或者选择Map页(如下图:),在右边的list中添加图层也可。保存修改,编译程序。运行就可以看到一个简单显示地图的程序了(如下图)。三、本章小结上面只是一个简单实例,里面有许多功能都没有,当你把程序窗口最大化时你会发现,地图窗口没有随窗口放大。在下一节我们将完善这个功能,并添加地图漫游的一些功能。5 AO开发笔记(实战篇)用VC+AO开发独立的应用程序(2)作者:Snoopy文章来源:中国3S网站()点击数:2852更新时间:2006-12-11在上一节中我们实现了一个简单的显示地图的程序。下面我们在它的基础上完善和添加以下新的功能:1当框架窗口大小更改时改变地图控件窗口使之随框架窗口增大。2增加地图漫游功能:移动、放大、缩小、显示全图一、更改项目配置、添加引入库代码在本节中我们将使用AO提供的一些接口,所以需要更改项目配置,以及添加引用AO库的代码。首先打开上一节所建项目。选择菜单Tools-Options-Directories页在Include files里添加两个路径(如果你的ArcGIS的安装目录在其它盘,需做相应改动):C:PROGRAM FILESARCGISCOMC:PROGRAM FILESARCGISBIN在项目的StdAfx.h中添加如下代码:/ AO引入库#pragmawarning(push)#pragmawarning(disable: 4192)#pragmawarning(disable: 4146)#importesriSystem.olbraw_interfaces_only raw_native_types no_namespace named_guids exclude(OLE_COLOR,OLE_HANDLE,VARTYPE,IStatusBar)#importesriSystemUI.olbraw_interfaces_only, raw_native_types, no_namespace, named_guids exclude(IProgressDialog)#importesriGeometry.olbraw_interfaces_only raw_native_types no_namespace named_guids#importesriDisplay.olbraw_interfaces_only raw_native_types no_namespace named_guids#importesriGeoDatabase.olbraw_interfaces_only raw_native_types no_namespace named_guids#importesriCarto.olbraw_interfaces_only, raw_native_types, no_namespace, named_guids#importesriDataSourcesFile.olbraw_interfaces_only raw_native_types no_namespace named_guids exclude(OLE_COLOR,OLE_HANDLE)#importesriDataSourcesGDB.olbraw_interfaces_only raw_native_types no_namespace named_guids exclude(OLE_COLOR,OLE_HANDLE)#importToolbarControl.ocxraw_interfaces_only raw_native_types no_namespace named_guids#importTOCControl.ocxraw_interfaces_only raw_native_types no_namespace named_guids#importMapControl.ocxraw_interfaces_only raw_native_types no_namespace named_guids#importPageLayoutControl.ocxraw_interfaces_only raw_native_types no_namespace named_guids#importArcReaderControl.ocxraw_interfaces_only raw_native_types no_namespace named_guids#pragmawarning(pop)二、添加地图浏览功能,完善地图窗口缩放1、使MapControl随窗口放大首先为CAOExStep1View添加一个保护类型的成员变量:IMapControl3Ptrm_ipMapControl;/地图控件该变量保存指向MapContrl的接口指针。然后在类CAOExStep1View的成员函数OnInitialUpdate添加如下代码初始化它(红色部分):void CAOExStep1View:OnInitialUpdate()/此处省略其它代码/获取MapControl指针m_ipMapControl = GetDlgItem(IDC_MAPCONTROL1)-GetControlUnknown();为类CAOExStep1View添加窗口改变大小事件函数,并在里面添加如下代码(红色部分):void CAOExStep1View:OnSize(UINT nType, int cx, int cy)CFormView:OnSize(nType, cx, cy);/ View窗口改变大小时改变MapControl大小if(m_ipMapControl!=NULL)CRect rc;GetClientRect(rc);GetDlgItem(IDC_MAPCONTROL1)-MoveWindow(rc);经过上面的修改,现在重新编译程序,把窗口最大化,你会看到地图窗口随之放大。2、接下来我们来添加地图漫游功能首先把项目默认的工具栏按钮全部删除只留下关于按钮。然后添加5个按钮,按钮ID和提示文本如下,按钮的图标可以使用ArcGIS的相应功能的图标(ArcGIS的一些图标保存在按照目录的BinIcons下面,是一系列bmp文件)。ID_MAP_ARROW选择状态n选择状态ID_MAP_PAN地图平移n地图平移ID_MAP_ZOOMIN地图放大n地图放大ID_MAP_ZOOMOUT地图缩小n地图缩小ID_MAP_FULLEXTENT显示全图n显示全图为了处理鼠标事件我们需要为MapControl添加一个onMouseDown事件函数,在类CAOExStep1View里添加上面添加的工具栏按钮的响应函数,另外我们还需要在类CAOExStep1View头文件里添加一个标志当前鼠标操作状态的成员变量:esriARToolm_ARTool;/鼠标当前状态在工具栏响应函数中添加如下代码(红色部分):/选择状态void CAOExStep1View:OnMapArrow()m_ARTool = esriARToolNoneSelected;m_ipMapControl-put_MousePointer(esriPointerDefault);/地图平移void CAOExStep1View:OnMapPan()m_ARTool = esriARToolMapPan;m_ipMapControl-put_MousePointer(esriPointerPan);/地图放大void CAOExStep1View:OnMapZoomin()m_ARTool = esriARToolMapZoomIn;m_ipMapControl-put_MousePointer(esriPointerZoomIn);/地图缩小void CAOExStep1View:OnMapZoomout()m_ARTool = esriARToolMapZoomOut;m_ipMapControl-put_MousePointer(esriPointerZoomOut);/显示全图void CAOExStep1View:OnMapFullextent()IActiveViewPtr ipActiveView;HRESULT hr=m_ipMapControl-get_ActiveView(&ipActiveView);if (FAILED(hr) return;IEnvelopePtr ipEnvelope;hr = ipActiveView-get_FullExtent(&ipEnvelope);if (FAILED(hr) return;ipActiveView-put_Extent(ipEnvelope);ipActiveView-Refresh();6 cstring to char*,const char*2009-08-07 16:19在C语言中表示字符串,没有string概念,只可以用char*和char;在MFC中,为了服务于字符串操作,添加了类CString,该类的头文件是afx.h. 从char* 到CString的转换很简单,只需要用CString的构造函数即可。 本文介绍了CString到const char*和char* 的转换方法。CString类功能强大,比STL的string类有过之无不及.新手使用CString时,都会被它强大的功能所吸引.然而由于对它内部机制的不了解,新手在将CString向C的字符数组转换时容易出现很多问题.因为CString已经重载了LPC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年莆田辅警协警招聘考试备考题库及答案详解(必刷)
- 2025年萍乡辅警协警招聘考试真题及答案详解参考
- 2025年阿里辅警招聘考试真题及答案详解(真题汇编)
- 2025年自贡辅警招聘考试真题含答案详解(新)
- 2025年黔南布依族苗族自治州辅警招聘考试题库含答案详解(综合卷)
- 2025年甘南州辅警招聘考试题库及答案详解(网校专用)
- 2025年湘潭辅警招聘考试题库附答案详解(研优卷)
- 2025年温州辅警招聘考试真题及参考答案详解1套
- 2025年莆田辅警协警招聘考试真题含答案详解(综合题)
- 2025年海口辅警协警招聘考试真题及答案详解(考点梳理)
- GB/T 4337-2025金属材料疲劳试验旋转弯曲方法
- 第2单元 轴对称和平移 单元模拟提升培优卷-2025-2026学年五年级上册数学北师大版(含答案解析)
- 隧道维修安全教育培训课件
- 【《分拆上市的动因绩效研究的国内外文献综述》5700字】
- 第五单元 第二、三章学情评估卷(含答案)-冀少版八年级生物上册
- 市政道路工程测量方案
- 2025年江西工会工作者招聘考试(工会基础知识)历年参考题库含答案详解(5卷)
- 2025河南医疗器械公司会议记录范文
- 酸雨教学课件
- 供热管理办法佳木斯
- 装修工程的重点和难点及保证措施
评论
0/150
提交评论