请问一个CString的怪问题

zsindy 2004-07-02 01:11:21
CString tempDir = VideoPath;

if(tempDir.Right(1) != "\\")
{
tempDir.Insert(tempDir.GetLength() - 1, "\\");
//tempDir += "\\";
}

tempDir += "*.*";
其中VideoPath是CString的全局变量,为什么执行完后,tempDir保持VideoPath原来的值,没有改变,不论执不执行if里面的都一样。
...全文
261 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdsh00 2004-07-02
  • 打赏
  • 举报
回复
呵呵,可惜我不是,要不然可以找我。
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
to sodangerous(机器人)

急也没用呀
向三哥请教一下就行了
以后我都跟小三混了
-------------------
我也是小弟啊。我也想找老大。。呵呵。。^_^。
zjg751206 2004-07-02
  • 打赏
  • 举报
回复
我写过n编这种代码了。
这段代码没有问题的。关键是你那个VideoPath;的值对不对??
加一句判断
看路径对不对???
前面
#include "io.h"
if(access(VideoPath,0))
{
AfxMessageBox("他奶奶的。这个路径不存在了,去哪儿了?????");
}
sodangerous 2004-07-02
  • 打赏
  • 举报
回复
急也没用呀
向三哥请教一下就行了
以后我都跟小三混了
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
你换个变量名呢
zsindy 2004-07-02
  • 打赏
  • 举报
回复
不好意思,我不方便把工程都发出来

急死我了,一个很简单的问题,却老也解决不了
那位能帮帮我
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
实在不行,如果方便就把工程发到airforcetwo@163.com
pcyy 2004-07-02
  • 打赏
  • 举报
回复
看代码看不出啥问题啊。
郁闷中。
能不能 VideoPath先加\\*.*,然后再让tempdir等于它呢??
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
你无非是想判断得到的路径字符串最后是否是"\\",如果没有就加一个"\\",就代码来说
tempDir += "\\";是应该没有问题的,你设置断点,再试试。
zsindy 2004-07-02
  • 打赏
  • 举报
回复
VideoPath的值没问题,我用debug看了
zsindy 2004-07-02
  • 打赏
  • 举报
回复
但在我的程序中,不行啊
难道VideoPath有什么问题嘛
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
调用LoadCoder()时,你看了VideoPath的值是什么了么?
xzqchat 2004-07-02
  • 打赏
  • 举报
回复
CString tempDir = "\\abcde\\sdfsld";

if(tempDir.Right(1) != "\\")
{
tempDir += "\\";
//tempDir.Insert(tempDir.GetLength() - 1, "\\");
//tempDir += "\\";
}

这样可以,VC6 SP5 测试通过。
pcyy 2004-07-02
  • 打赏
  • 举报
回复
lixiaosan(小三): come on
关注中。
期待解答。
顶。
zsindy 2004-07-02
  • 打赏
  • 举报
回复
void CXDReplayerDlg::LoadCoder()
{
char *lpStr1 = (LPSTR)(LPCTSTR)VideoPath;

BOOL te = PathFileExists(lpStr1);
if (!te)
{
char* msg = "指定文件夹不存在.";
char* title = "错误";
MessageBox(msg, title, MB_OK | MB_ICONERROR);
return;
}

CFileFind ff;
int Dindex = 0;
CString tempDir = VideoPath;

if(tempDir.Right(1) != "\\")
{
tempDir.Insert(tempDir.GetLength() - 1, "\\");
//tempDir += "\\";
}

tempDir += "*.*";

BOOL res = ff.FindFile(tempDir);
m_COBDevice.Clear();
while(res)
{
res = ff.FindNextFile();

Dindex ++;

if(ff.IsDirectory() && !ff.IsDots())
{
CString strTitle = ff.GetFileTitle();
m_COBDevice.InsertString(Dindex, strTitle);
}
}
}
这是整个函数
引用的这个
extern CString VideoPath;
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
不会吧。。要不你把你的工程发给我看看
airforcetwo@163.com
zsindy 2004-07-02
  • 打赏
  • 举报
回复
我就是因为tempDir += "\\";不行,才用的现在的,结果一样,不知道为什么
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
当然,用tempDir += "\\";比较普遍些
lixiaosan 2004-07-02
  • 打赏
  • 举报
回复
可以的,才试了
快乐鹦鹉 2004-07-02
  • 打赏
  • 举报
回复
tempDir.Insert(tempDir.GetLength() - 1, "\\");
这个不应该用Insert吧。应该用tempDir += "\\";
加载更多回复(1)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧