C常用操作函数

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

C++常用操作函数载入动态库

bool LoadDll()

{

HttpDownDll = LoadLibrary("HTTPDOWNDLL.dll");

if(HttpDownDll == NULL)

{

MessageBox(0, "载入动ˉ态库a错洙误ó!", "错洙误ó",

MB_OK|MB_ICONWARNING);

FreeLibrary(HttpDownDll);

return false;

}

SendCommand = (SendCommandFunc)GetProcAddress(HttpDownDll, "SendCommand");

if(SendCommand == NULL)

{

MessageBox(0, "GetProcAddress错洙误ó!", "错洙误ó",

MB_OK|MB_ICONWARNING);

FreeLibrary(HttpDownDll);

return false;

}

return true;

}

卸载动态库

bool FreeDll()

{

FreeLibrary(HttpDownDll);

SendCommand = NULL;

return true;

}

字符串分割

std::vector split(std::string str,std::string pattern)

{

std::string::size_type pos;

std::vector result;

str+=pattern;//扩展1字符串以方便操ù作痢

int size=str.size();

for(int i=0; i

{

pos=str.find(pattern,i);

if(pos

{

std::string s=str.substr(i,pos-i);

result.push_back(s);

i=pos+pattern.size()-1;

}

} return result;

}

UTF8转GBK

void UTF8ToGBK(std::string &s)

{

char szOut[256];

memset(szOut,0,256);

strcpy(szOut,s.c_str());

unsigned short* wszGbk = NULL;

char* szGbk = NULL;

//长度

int len = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)szOut, -1, NULL, 0);

wszGbk = new unsigned short[len+1];

memset(wszGbk, 0, len * 2 + 2);

MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)szOut, -1, (LPWSTR)wszGbk, len);

//长度

len = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)wszGbk, -1, NULL,

0, NULL, NULL);

szGbk = new char[len+1];

memset(szGbk, 0, len + 1);

WideCharToMultiByte(CP_ACP, 0, (LPWSTR)wszGbk, -1, szGbk, len, NULL, NULL);

// szOut = szGbk; //这样得到的szOut不正确,因为此句意义是将szGbk的首地址赋给szOut,

// 当delete []szGbk执行后szGbk的内存空间将被释放,此时将得不到szOut的内容

memset(szOut, '\0', strlen(szGbk) + 1); //改将szGbk的内容赋给szOut ,这样即使szGbk被释放也能得到正确的值

memcpy(szOut, szGbk, strlen(szGbk));

s=szOut;

delete []szGbk;

delete []wszGbk;

}

删除文件

int DeleteFileFunc(string v_SourceFile)

{

int l_Result = 0;

/* _access(char *,int) 判断文件是否存在

存在返回0;不存在返回-1.

_access(const char *path,int mode)

mode的值:

00 是否存在

02 写权限

04 读权限

06 读写权限

*/

char l_SourceFile[256] = {0};

strcpy(l_SourceFile, v_SourceFile.c_str());

if(!_access(l_SourceFile,0))//如果文件存在:文件为只读无法删除

{

//去掉文件只读属性

SetFileAttributes(l_SourceFile,0);

if(DeleteFile(l_SourceFile))//删除成功

{

l_Result = 0;

}

else//无法删除:文件只读或无权限执行删除

{

//cout<

相关文档
最新文档