| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 670 人关注过本帖
标题:如何解决WinExec函数不能处理超长字符串命令的问题
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
已结贴  问题点数:15 回复次数:2 
如何解决WinExec函数不能处理超长字符串命令的问题
程序代码:
#include <windows.h>
#include <iostream.h>

#include "string"
using namespace std;

std::string longcmd = "notepad ";

std::string longfilename = "zhongyundezhongyundezhongyundezhongyundezhongyundezhongyunde";

void initcmd()
{
    int i = 0;
    for (i=0;i<1000;i++)
    {
        longcmd += longfilename;

    }
    longcmd += ".txt";
}


void main(int argc,char *argv[])
{
    cout <<"Opening with WinExec\n";
    initcmd();
    if (WinExec(longcmd.c_str(),SW_SHOW) <32)
        MessageBox(NULL,"Can't WinExec",NULL,MB_OK);
} 
以上程序的initcmd()中,如果修改for (i=0;i<1000;i++)为for (i=0;i<1;i++)能正常执行,但是现在由于longcmd.c_str()命令所对应的字符串超出了WinExec函数的允许范围,导致WinExec(longcmd.c_str(),SW_SHOW)执行出错,有什么办法能解决这个问题吗?或者用别的API函数可以突破这个限制呢 ?
搜索更多相关主题的帖子: WinExec 函数 字符 命令 
2010-09-28 02:21
红色警戒
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:19
帖 子:444
专家分:2967
注 册:2005-11-20
收藏
得分:15 
CString str = "notepad zhongyundezhongyundezhongyundezhongyundezhongyundezhongyunde";
WinExec(str, SW_SHOW);
我这样执行没有问题

2010-09-28 09:06
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 2楼 红色警戒
恩,后来发现是notepad这个命令的问题,用ls就没有问题了

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-09-28 23:48
快速回复:如何解决WinExec函数不能处理超长字符串命令的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028725 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved