也就是变成"D:\\Champion\\的形式abc.exe"
解决方案 »
- 自己做了个浏览器,怎么获得链接地址(例如,我点击了QQ界面上的空间图标,调用我的浏览器,怎么获得QQ空间的地址),求高手帮忙?
- VC 消息同时响应的问题
- 很丢脸的问一个在函数名前加::是什么意思?
- 我的无模式对话框不响应对话框里面的所有事件了!?怎么回事呢?(在线急等。。。。。。。)
- 散分哈:如何知道_CommandPtr::Execute()执行成功与否?
- 我的程序向另一对话框程序发回车消息为何收不到?
- picture控件问题
- C++群,欢迎大家加入,相互学习!
- 为什么反过来就不行呢?
- C++编写访问数据库的DLL
- 求 C++MFC编程实例>> 和<<VISUAL C++MFC扩展编程实例>>书的配套源码?请发[email protected]
- RichEdit的 图文并显问题,急!
CFileDialog dc(TRUE, "exe", NULL, NULL, fliter);
dc.m_ofn.lpstrTitle="files open"; // 打开框的名字
if(dc.DoModal() == IDOK)
{
m_subfunction_address = dc.GetPathName();
}用打开文件的对话框,如上得到字符串的,m_subfunction_address就是
"D:\Champion\abc.exe"的形式
搞不定才怪!
"D:\Champion\abc.exe"存在哪儿?字符串吗?
你要说出你这样转换的用途才能清楚
Replace应该搞不定...
因为CString str="D:\Champion\abc.exe";这样赋值后
str中根本就找不到'\'这个字符
m_subfunction_address可以直接用啊~
这时的m_subfunction_address
相当于m_subfunction_address="D:\\Champion\\abc.exe"运行后的结果
error C2039: 'replace' : is not a member of 'CString'shilong(银羽):的确如你说的,我只是想在ShellExecute()里用这一地址,ShellExecute()的确可以用这一直接返回的地址。
void Replace(CString& str)
{
int i = str.Find('\\'); while((i >= 0) && (i < str.GetLength()-1))
{
char c1 = str.GetAt(i-1), c2 = str.GetAt(i+1);
if ((c1 != '\\') && (c2 != '\\'))
{
str.Insert( i, '\\');
i++;
}
i = str.Find('\\', i+1);
} if((str.Right(1) == '\\') && (str.Right(2) != "\\\\"))
str += '\\';
return;
}
编译后就不是这个样子了。