C++开发问题汇总
2008-01-02 17:33
316 查看
7.linux下取得系统时间
struct tm * time1;
time_t t;
time(&t);
time1 = localtime(&t);
printf("%d-%d-%d %d:%d:%d/n" , 1900+time1->tm_year,time1->tm_mon+1, time1->tm_mday, time1->tm_hour, time1->tm_min, time1->tm_sec);
6.vector删除重复元素的方法
通过结合使用sort( )和unique( )函数可以实现删除vector重复元素,但这样会改变vector原来的元素顺序.如果vector的元素序列跟程序逻辑有关, 那只能另外选择方法. 如下例:
void FilterVector(SV *v)
{
if (v == NULL)
return;
string str;
vector<string>::iterator i, it;
i = v->begin();
while (i != v->end())
{
it = i + 1;
while (it != v->end())
{
if (*it == *i)
it = v->erase(it);
else
it++;
}
i++;
}
}
5.标准库map.erase()的用法
if (!g_SendData.empty())
{
std::map<string, time_t>::iterator itr;
for (itr=g_SendData.begin(); itr!=g_SendData.end(); )
{
if (difftime(tNow, itr->second) > config.t_ServerConfig.nTimeOut)
{
g_SendData.erase(itr++);
}
else
itr++;
}
}
4.根据窗口句柄得到可执行文件路径
#include <psapi.h>
#pragam comment(lib, "psapi.lib")
DWORD ProcessID = 0;
HANDLE hProcess = 0;
char szPath[512] = {0};
hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, ProcessID);
GetModuleFileNameEx(hProcess, NULL, szPath, 512);
3. CFileDialog出错的解决方法
日期:2007-7-17
问题描述:程序在实例化一个CFileDialog后,点击确定或取消按钮, 或进入代码,退出调用该函数的函数时,出现内存错误,错误号
Unhandled exception in xxx.exe(KERNEL32.DLL): 0xC0000005: Access Violation.
解决办法:更改包含afxwin.h头文件的代码为:
#define _WIN32_WINNT 0x0500 // allow Win2000 specific calls
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include // MFC core and standard components
#undef _WIN32_WINNT
然后,我在这里找到了关于这个问题的具体说明:
这是MFC6.0中的CFileDialog内嵌一个OPENFILENAME结构的原因。如果你定义了_WIN32_WINNT=0x500,那么OPENFILENAME会比之前的版本多一些成员,造成你的工程中的CFileDialog声明就和MFC6.0的DLL中的实现代码不匹配,在运行时会改写MFC的CFileDialog中m_ofn成员之后的变量。
这个问题在MFC7.0中已经修正了,使用的OPENFILENAME从成员变量变成指针(m_pOFN )。你可以参照http://msdn.microsoft.com/msdnmag/issues/0800/c/default.aspx的方法修改你的代码。
2.程序无法调试
日期:2007-7-17
问题描述:程序无法加入断点
解决办法:此问题是由于为了调试方便,把Debug和Release版的可执行文件编译到同一个目录的相同文件
名下,若编译了一个Release版本.exe,下次再进行调试时,应首先清除一次,重新编译All,否则会导致
上述问题;
1.程序无法调试
日期:2007-7-15
问题描述:程序无法加入断点
解决办法:此问题时加入自定义消息后引起的。自定义消息有固定格式,OnSomeFunction(UINT
lParam,LONG wParam), 若将函数原形生命诚OnSomeFunction()则会出现该问题;
![](http://imgcache.qq.com/qzone_v4/b.gif)
struct tm * time1;
time_t t;
time(&t);
time1 = localtime(&t);
printf("%d-%d-%d %d:%d:%d/n" , 1900+time1->tm_year,time1->tm_mon+1, time1->tm_mday, time1->tm_hour, time1->tm_min, time1->tm_sec);
6.vector删除重复元素的方法
通过结合使用sort( )和unique( )函数可以实现删除vector重复元素,但这样会改变vector原来的元素顺序.如果vector的元素序列跟程序逻辑有关, 那只能另外选择方法. 如下例:
void FilterVector(SV *v)
{
if (v == NULL)
return;
string str;
vector<string>::iterator i, it;
i = v->begin();
while (i != v->end())
{
it = i + 1;
while (it != v->end())
{
if (*it == *i)
it = v->erase(it);
else
it++;
}
i++;
}
}
5.标准库map.erase()的用法
if (!g_SendData.empty())
{
std::map<string, time_t>::iterator itr;
for (itr=g_SendData.begin(); itr!=g_SendData.end(); )
{
if (difftime(tNow, itr->second) > config.t_ServerConfig.nTimeOut)
{
g_SendData.erase(itr++);
}
else
itr++;
}
}
4.根据窗口句柄得到可执行文件路径
#include <psapi.h>
#pragam comment(lib, "psapi.lib")
DWORD ProcessID = 0;
HANDLE hProcess = 0;
char szPath[512] = {0};
hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, ProcessID);
GetModuleFileNameEx(hProcess, NULL, szPath, 512);
3. CFileDialog出错的解决方法
日期:2007-7-17
问题描述:程序在实例化一个CFileDialog后,点击确定或取消按钮, 或进入代码,退出调用该函数的函数时,出现内存错误,错误号
Unhandled exception in xxx.exe(KERNEL32.DLL): 0xC0000005: Access Violation.
解决办法:更改包含afxwin.h头文件的代码为:
#define _WIN32_WINNT 0x0500 // allow Win2000 specific calls
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include // MFC core and standard components
#undef _WIN32_WINNT
然后,我在这里找到了关于这个问题的具体说明:
这是MFC6.0中的CFileDialog内嵌一个OPENFILENAME结构的原因。如果你定义了_WIN32_WINNT=0x500,那么OPENFILENAME会比之前的版本多一些成员,造成你的工程中的CFileDialog声明就和MFC6.0的DLL中的实现代码不匹配,在运行时会改写MFC的CFileDialog中m_ofn成员之后的变量。
这个问题在MFC7.0中已经修正了,使用的OPENFILENAME从成员变量变成指针(m_pOFN )。你可以参照http://msdn.microsoft.com/msdnmag/issues/0800/c/default.aspx的方法修改你的代码。
2.程序无法调试
日期:2007-7-17
问题描述:程序无法加入断点
解决办法:此问题是由于为了调试方便,把Debug和Release版的可执行文件编译到同一个目录的相同文件
名下,若编译了一个Release版本.exe,下次再进行调试时,应首先清除一次,重新编译All,否则会导致
上述问题;
1.程序无法调试
日期:2007-7-15
问题描述:程序无法加入断点
解决办法:此问题时加入自定义消息后引起的。自定义消息有固定格式,OnSomeFunction(UINT
lParam,LONG wParam), 若将函数原形生命诚OnSomeFunction()则会出现该问题;
![](http://imgcache.qq.com/qzone_v4/b.gif)
相关文章推荐
- Eclipse 开发 C++ 程序问题汇总
- linux c++开发问题汇总
- C++后台开发面试常见问题汇总
- vs2008下C++开发问题汇总
- ios开发经典问题汇总
- 芒果iOS开发人事面试问题及答案汇总一
- opengl开发中相关问题的汇总
- 开发遇到的问题汇总
- iOS开发--iOS 指纹识别常见问题汇总
- 学徒浅析Android开发——windows64下FFmpeg编译问题汇总
- 日常开发中遇到的问题汇总
- IOS 开发过程中问题汇总
- 前端开发中各浏览器兼容性问题汇总——不间断更新
- iPhone开发中混用objc,c,c++的一些问题
- 开发中遇到的一些问题汇总
- 嵌入式开发的问题汇总
- c++ 编译问题汇总
- C++开发一个数组类——解决原生数组的安全性问题
- GDI+在界面开发中遇到的问题汇总
- 【ios开发技术研究】Xcode8 及iOS10适配问题整理汇总