Releasebuffer函数(file.getName()是获取文件名,哪个函数是获取当前路径呢)

2024-01-12 03:20:03 :235

releasebuffer函数(file.getName()是获取文件名,哪个函数是获取当前路径呢)

大家好,如果您还对releasebuffer函数不太了解,没有关系,今天就由本站为大家分享releasebuffer函数的知识,包括file.getName()是获取文件名,哪个函数是获取当前路径呢的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

file.getName()是获取文件名,哪个函数是获取当前路径呢

获取当前路径,VC++有获取程序运行的路径,在debug 下CString processFileName;GetModuleFileName(NULL, processFileName.GetBuffer(MAX_PATH), MAX_PATH);processFileName.ReleaseBuffer();

在VC的MFC中,用类CString的那一个函数可以返回构造它的那个字符串

如果你的MFC是多字符版本的话(不支持Unicode的),那么CString转Char*如下:CString str="abc";Char *pCh;int length=str.GetLength(); //获得字符串长度,此处length=3;pCh=str.GetBuffer(length); //此处处理之后pCh="abc"str.ReleaseBuffer(); //释放,最好有这句吧如果你的MFC是用vs2005写的,支持Unicode的话,不能用上面的了,其中一种方法是使用宏,代码如下: char *pCh; CString str=L"abc"; //Unicode版本的CString都有个"L" //使用宏转换,Unicode-》ANSI USES_CONVERSION; pCh=W2A(str); //经过处理后pCh="abc"应该使这样了。

releasebuffer函数是什么意思

GetBuffer和ReleaseBuffer是从其父类CSimpleStringT继承过来的。GetBuffer的作用是:“Returnsapointertotheinternalcharacterbuffer”,ReleaseBuffer的作用是:“ReleasescontrolofthebufferallocatedbyGetBuffer.”。这两个函数的常见用法如下:CStringstr;constintbufferSize=10;LPTSTRp=str.GetBuffer(bufferSize);_tcscpy_s(p,bufferSize,_T("abcd1234."));//usethebufferdirectlystr.ReleaseBuffer();//Surplus(多余的)memoryreleased,pisnowinvalid.给GetBuffer函数传递的参数bufferSize,意思是:“Theminimumsizeofthecharacterbufferincharacters.Thisvaluedoesnotincludespaceforanullterminator.”。对于调用ReleaseBuffer释放内存时,是否应该带参数,msdn是这样说的:“Ifyoukeeptrackofthestringlengthyourself,youshouldnotappendtheterminatingnullcharacter.Youmust,however,specifythefinalstringlengthwhenyoureleasethebufferwithReleaseBuffer.Ifyoudoappendaterminatingnullcharacter,youshouldpass–1(thedefault)forthelengthtoReleaseBuffer,andReleaseBufferwillperformastrlenonthebuffertodetermineitslength.”。因为ReleaseBuffer函数的默认参数是-1,所以通常在调用ReleaseBuffer函数时省去-1参数的书写。

CString obj;obj.GetBuffer(0);//这句代码什么意思

CString::GetBufferLPTSTRGetBuffer(intnMinBufLength);throw(CMemoryException);返回值:一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR指针。参数:nMinBufLength字符缓冲区的以字符数表示的最小容量。这个值不包括一个结尾的空字符的空间。说明:此成员函数返回一个指向CString对象的内部字符缓冲区的指针。返回的LPTSTR不是const,因此可以允许直接修改CString的内容。如果你使用由GetBuffer返回的指针来改变字符串的内容,你必须在使用其它的CString成员函数之前调用ReleaseBuffer函数。在调用ReleaseBuffer之后,由GetBuffer返回的地址也许就无效了,因为其它的CString操作可能会导致CString缓冲区被重新分配。如果你没有改变此CString的长度,则缓冲区不会被重新分配。当此CString对象被销毁时,其缓冲区内存将被自动释放。注意,如果你自己知道字符串的长度,则你不应该添加结尾的空字符。但是,当你用ReleaseBuffer来释放该缓冲区时,你必须指定最后的字符串长度。如果你添加了结尾的空字符,你应该给ReleaseBuffer的长度参数传递-1,ReleaseBuffer将对该缓冲区执行strlen来确定它的长度。示例:下面的例子说明了如何用CString::GetBuffer。//CString::GetBuffer例子CStrings("abcd");#ifdef_DEBUGafxDump《《"CStrings"《《s《《"\n";#endifLPTSTRp=s.GetBuffer(10);strcpy(p,"Hello");//直接访问CString对象。s.ReleaseBuffer();#ifdef_DEBUGafxDump《《"CStrings"《《s《《"\n";#endif

c语言函数解 答输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数 求下面解答!!1

//ReadIniData.cpp#include "stdafx.h"#include "ReadIniData.h"#include 《atlstr.h》//for CString#include 《fstream》#include 《Windows.h》#include 《cstring》#include 《cctype》#include 《direct.h》#include 《algorithm》namespace{int m_comp;int m_count;map《string,int》 m_map;}void readData::GetPath( char * path ){char buf="";::GetModuleFileName(NULL,buf,MAX_PATH);CString cpath(buf);cpath=cpath.Left(cpath.ReverseFind(’\\’)+1);cpath+="config\\sample.txt";strcpy(path,cpath.GetBuffer());cpath.ReleaseBuffer();}void readData::LoadINI(){m_map.clear();locale::global(locale(""));//将全局区域设为操作系统默认区域char path;//存放配置文件路径GetPath(path);//得到配置文件路径ifstream inf;//开始读文件inf.open(__T(path));//打开配置文件 if (!inf){MessageBox(NULL,"打开文件错误:\n 请检查文件目录下的\\config\\config.ini是否存在!\n并且不能有中文路径","消息",0);exit(0);}char * buf=new char;auto_ptr《char》 aip(buf);//自能指针memset(buf,’\0’,MAX_SIZE);//初始化内存int count=0;//得到中共读取的数if(inf.getline(buf,MAX_SIZE)){//读取数据count=(find(buf,buf+MAX_SIZE,’\0’)-buf);//得到读取进来的长度transform(buf,buf+count,buf,tolower);//大写变小写replace(buf,buf+count,’ ’,’\0’);//将空格替换成‘\0’string a(buf);//第一个元素m_map++;//添加第一个元素for_each(buf,buf+count,AppMap);//做一次遍历并存值}}bool operator 》(const pair《string,int》 & r,const int & a){m_count+=r.second;if ((r.second)》a){return true;}elsereturn false;}struct Comp{void operator()(const pair《string,int》 & it) const{if (it》m_comp){cout《《(it.first)《《" = "《《(it.second)《《endl;}}};void readData::print( int a ){m_comp=a;for_each(m_map.begin(),m_map.end(),Comp());cout《《"总共单词数为:"《《m_count《《endl;}void readData::AppMap( const char & c ){if (c==’\0’){if (*(&c+1)!=’\0’){string s(&c+1);m_map++;}}}//CountMap.cpp#include "stdafx.h"#include "ReadIniData.h"int _tmain(int argc, _TCHAR* argv){readData read;read.LoadINI();read.print(2);cin.get();return 0;}

file.getName()是获取文件名,哪个函数是获取当前路径呢的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于file.getName()是获取文件名,哪个函数是获取当前路径呢、file.getName()是获取文件名,哪个函数是获取当前路径呢的信息别忘了在本站进行查找哦。

releasebuffer函数(file.getName()是获取文件名,哪个函数是获取当前路径呢)

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.