C常用操作函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
{
std::string::size_type pos;
std::vector
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<