VC怎样给生成的应用程序传递参数?
如我用vc生成了文件myproc.exe我怎样通过另一个程序a.exe给它传递如,myproc.exe1,怎样传递1进去,因为1进去myproc.exe就进行复制,2就进...
如我用vc生成了文件myproc.exe
我怎样通过另一个程序a.exe给它传递如,myproc.exe 1,怎样传递1进去,因为1进去myproc.exe就进行复制,2就进程移动等等……,不知道两个程序关键的地方怎样写,myproc.exe功能我已经写好了,在参数这里卡住了
我等伙再加分,先谢谢大家。
我想这样子,在dos模式下可以打入: myproc.exe 1
然后就进行复制操作了,不需要myproc.exe读取硬盘上的ini配置文件;
"Frank7258"您好,可以详细说明一下向我上面dos打入的1参数,它保存到哪儿去了吗? 展开
我怎样通过另一个程序a.exe给它传递如,myproc.exe 1,怎样传递1进去,因为1进去myproc.exe就进行复制,2就进程移动等等……,不知道两个程序关键的地方怎样写,myproc.exe功能我已经写好了,在参数这里卡住了
我等伙再加分,先谢谢大家。
我想这样子,在dos模式下可以打入: myproc.exe 1
然后就进行复制操作了,不需要myproc.exe读取硬盘上的ini配置文件;
"Frank7258"您好,可以详细说明一下向我上面dos打入的1参数,它保存到哪儿去了吗? 展开
展开全部
我来说下吧,你的那个a.exe应该调用API函数CreateProcess(“myproc.exe”,“1”,...);
后面的参数我就不填写了,你自己看下MSDN然后填写吧!就说下这个API吧,主要功能是启动一个子进程,第一个参数是你的可执行程序文件名,我这里就写了myproc.exe,你最好写完整路径;第二个参数是命令行参数;这样a.exe会启动myproc.exe,同时传入1为命令行参数;
下来myproc.exe可以通过GetCommandLine()和CommandLineToArgvW()来获得这个命令行参数。具体API怎么用去看下MSDN吧,就不细说了,很简单!!
后面的参数我就不填写了,你自己看下MSDN然后填写吧!就说下这个API吧,主要功能是启动一个子进程,第一个参数是你的可执行程序文件名,我这里就写了myproc.exe,你最好写完整路径;第二个参数是命令行参数;这样a.exe会启动myproc.exe,同时传入1为命令行参数;
下来myproc.exe可以通过GetCommandLine()和CommandLineToArgvW()来获得这个命令行参数。具体API怎么用去看下MSDN吧,就不细说了,很简单!!
展开全部
C语言中的main函数,一般会带有2个参数,例如int main ( int argc, char* argv[]),这是一个典型的main函数的声明。
为了在执行程序时需要向程序传递参数,参数argc代表了输入参数的个数,char *argv[]表示传入的参数的字符串,是一个字符串数组。
例如编写一个小程序:
int main(int argc, char* argv[])
{
int i;
printf("test main parameter\n");
printf("argc:%d\n", argc);
for(i=0;i<argc;i++)
{
printf("argv[%d]:%s\n", i, argv[i]);
}
exit(0);
}
对于你的程序,目前来看只要求argc=1,将参数存储到argv[0]中,然后对argv[0]的值进行判断就可以了
为了在执行程序时需要向程序传递参数,参数argc代表了输入参数的个数,char *argv[]表示传入的参数的字符串,是一个字符串数组。
例如编写一个小程序:
int main(int argc, char* argv[])
{
int i;
printf("test main parameter\n");
printf("argc:%d\n", argc);
for(i=0;i<argc;i++)
{
printf("argv[%d]:%s\n", i, argv[i]);
}
exit(0);
}
对于你的程序,目前来看只要求argc=1,将参数存储到argv[0]中,然后对argv[0]的值进行判断就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
另外一个程序里保存变量为 “1”
WriteProfileString("WheelVolume","IsFirstExcute","1"); //修改参数
//主程序myproc.exe里获取这个变量:
char buf[4]={0};
GetProfileString("WheelVolume","IsFirstExcute","0",buf,sizeof(buf));
结构:buf=“4”
WriteProfileString("WheelVolume","IsFirstExcute","1"); //修改参数
//主程序myproc.exe里获取这个变量:
char buf[4]={0};
GetProfileString("WheelVolume","IsFirstExcute","0",buf,sizeof(buf));
结构:buf=“4”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MFC中命令行参数可以用全局变量__argc以及__argv获得,他们的定义是
int __argc;
char* __argv[];
注意,前面是两个下划线,而且是ANSI编码的,也就是char类型的,在Unicode编码程序的时候要用A2T转换成wchar_t类型。这两个变量和控制台程序是一样的定义。
另外,MFC比较好的方法来处理命令行,如果你是SDI或者MDI程序,在APP类的InitIncetance中有这么几行
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Verteilung der in der Befehlszeile angegebenen Befehle. Gibt FALSE zurück, wenn
// die Anwendung mit /RegServer, /Register, /Unregserver oder /Unregister gestartet wurde.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
他们就是在处理命令行的参数或者通过DDE传递进来的信息。
int __argc;
char* __argv[];
注意,前面是两个下划线,而且是ANSI编码的,也就是char类型的,在Unicode编码程序的时候要用A2T转换成wchar_t类型。这两个变量和控制台程序是一样的定义。
另外,MFC比较好的方法来处理命令行,如果你是SDI或者MDI程序,在APP类的InitIncetance中有这么几行
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Verteilung der in der Befehlszeile angegebenen Befehle. Gibt FALSE zurück, wenn
// die Anwendung mit /RegServer, /Register, /Unregserver oder /Unregister gestartet wurde.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
他们就是在处理命令行的参数或者通过DDE传递进来的信息。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Project--Settings--Debug--Program arguments下面填上你要传递的参数(比如1)就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询