调试版什么问题也没有,
发布版能打开打开文件对话框,但一关闭就出错,不管是点确定还是取消.
发现是在用运时库就有问题,调试时库就没问题;
我是在子类化的类成员函数中调用的打开文件对话框.同样代码如果放到主对话框成员函数中就不会出错,什么问题也没有,
不知道怎么回事
发布版能打开打开文件对话框,但一关闭就出错,不管是点确定还是取消.
发现是在用运时库就有问题,调试时库就没问题;
我是在子类化的类成员函数中调用的打开文件对话框.同样代码如果放到主对话框成员函数中就不会出错,什么问题也没有,
不知道怎么回事
{//添加视频文件名//打开文件
char VideoFileName[256];
memset( VideoFileName, '\0', sizeof( VideoFileName ) );CFileDialog dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, NULL,NULL);
dlg.m_ofn.lpstrFilter = "MPEG文件(*.MPG)\0*.MPG;*.dat;*.mpeg";
dlg.m_ofn.lpstrCustomFilter = NULL;
dlg.m_ofn.nMaxCustFilter = 0;
dlg.m_ofn.nFilterIndex = 1;
//dlg.m_ofn.lpstrFile = VideoFileName;
//dlg.m_ofn.nMaxFile = 256*10;
dlg.m_ofn.lpstrInitialDir = "d:\\";
//dlg.m_ofn.lpstrFileTitle = gszFileTitle;
dlg.m_ofn.nMaxFileTitle = 256;
dlg.m_ofn.lpstrTitle = "选择视频文件以打(可以选择多个)";
dlg.m_ofn.lpstrDefExt = "MPG";
//dlg.m_ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT;int iReturn=dlg.DoModal();if(iReturn == IDCANCEL) {
//如果选择了取消返回
return; }
if(iReturn == IDOK)
{
//如果选择了OK
POSITION pos = dlg.GetStartPosition();
while (pos != NULL)
{
CString strtemp;
strtemp=dlg.GetNextPathName(pos);
//写视频文件名
int i = ItemNumber;
InsertItem(i,strtemp);
//表项个数加1
ItemNumber+=1;
}
}}
{//添加视频文件名//打开文件
char VideoFileName[256];
memset( VideoFileName, '\0', sizeof( VideoFileName ) );CFileDialog dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, NULL,NULL);
dlg.m_ofn.lpstrFilter = "MPEG文件(*.MPG)\0*.MPG;*.dat;*.mpeg";
dlg.m_ofn.lpstrCustomFilter = NULL;
dlg.m_ofn.nMaxCustFilter = 0;
dlg.m_ofn.nFilterIndex = 1;
//dlg.m_ofn.lpstrFile = VideoFileName;
//dlg.m_ofn.nMaxFile = 256*10;
dlg.m_ofn.lpstrInitialDir = "d:\\";
//dlg.m_ofn.lpstrFileTitle = gszFileTitle;
dlg.m_ofn.nMaxFileTitle = 256;
dlg.m_ofn.lpstrTitle = "选择视频文件以打(可以选择多个)";
dlg.m_ofn.lpstrDefExt = "MPG";
//dlg.m_ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT;int iReturn=dlg.DoModal();if(iReturn == IDCANCEL) {
//如果选择了取消返回
return; }
if(iReturn == IDOK)
{
//如果选择了OK
POSITION pos = dlg.GetStartPosition();
while (pos != NULL)
{
CString strtemp;
strtemp=dlg.GetNextPathName(pos);
//写视频文件名
int i = ItemNumber;
InsertItem(i,strtemp);
//表项个数加1
ItemNumber+=1;
}
}}