利用ShellExecute启动程序,参数过长如何解决? 利用ShellExecute来启动一个程序,需要传递3000字长的参数,系统报错:传递给系统调用的数据区域太小.如何才能传递这么长的参数呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .... 这么长的参数 为什么不启动后利用Socket传递? #define max 1024*1024char lpFile[max];zeromemory(lpFile,sizeof(lpFile));wsprintf(lpFile,("...."));....ShellExecute..... 用配置文件也可以传递参数首先将参数写入文件然后用ShellExecute启动程序A在A的InitInstance()中读取这个配置文件当然用注册表也可以 哈哈 非也非也 不是因为才 3000 就出错 主要是因为 类型错误你 仔细看 ShellExecute()函数的 程序参数要用LPCTSTR 宽字符串 你直接 char * 就容易出错 LPCSTR lpParameters, //当lpOperation为“explore”时指定要传递的参数,通常设为NULL 传lpParameters 时 要强制转换char *lpParameters="fghhhgklhgfgh.....................";(LPCSTR)lpParameters 传参数所在的地址然后在被启动的程序里找回来或者ShellExecute后typedef struct paramdata{char param[3000];}pparamdata;pparamdata data;//填data.param数据sendmessage(WM_XXXX,&data,NULL);被启动程序再处理WM_XXXX消息 还是用注册表比较方便AfxGetApp()->WriteProfileString()//向注册表中写数据AfxGetApp()->GetProfileString()//从注册表中读取信息 AfxGetApp()->WriteProfileString();//向注册表中写数据AfxGetApp()->GetProfileString()//从注册表中读取信息 AfxGetApp()->WriteProfileString()//向注册表中写数据AfxGetApp()->GetProfileString();//从注册表中读取信息 大虾指点下,关于COMBO BOX ◇◆◇ 我来散10分,第五个人进来后结贴 ◇◆◇ asp想转到vc++,我除了 c++还要学什么呢? →→如何枚举所有表名?←← 如何相应关闭工具栏的消息呀?? 请问下面编译出错怎么样解决,谢谢 暑假老师让做一个排课系统......(来者有分) 在线等:关于打开文件路径的问题 CListBox的一个问题 有会CDialogBar的高手吗?????????????????? 把一个汉字变成01矩阵 picture控件上面放置Button控件
char lpFile[max];
zeromemory(lpFile,sizeof(lpFile));
wsprintf(lpFile,("...."));....
ShellExecute.....
首先将参数写入文件
然后用ShellExecute启动程序A
在A的InitInstance()中读取这个配置文件当然用注册表也可以
你 仔细看 ShellExecute()函数的 程序参数
要用LPCTSTR 宽字符串 你直接 char * 就容易出错
char *lpParameters="fghhhgklhgfgh.....................";
(LPCSTR)lpParameters
然后在被启动的程序里找回来
或者
ShellExecute
后typedef struct paramdata{
char param[3000];
}pparamdata;pparamdata data;
//填data.param数据sendmessage(WM_XXXX,&data,NULL);
被启动程序再处理WM_XXXX消息