createprocess(怎么调试CreateProcess创建的进程命令行)

本文目录
- 怎么调试CreateProcess创建的进程命令行
- createprocess 用法
- 运行文件createprocess失败,显示错误码,该如何解决
- C语言中的createprocess()函数参数是什么
- 用createprocess函数创建进程的意义是什么
- createprocess失败 代码2 怎么解决
- 用CreateProcess创建一个进程 急!!!
怎么调试CreateProcess创建的进程命令行
用CreateProcess创建的子进程所获得的命令行参数有以下几种情况:
1.子进程中,WinMain函数的第三个参数lpCmdLine表示的命令行参数中除去应用程序路径、文件名以及与参数相隔的空格等字符串后的内容。比如
父进程:
CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, π);
子进程中,lpCmdLine参数为-p,注意没有双引号
2.如果通过lpCmdLine参数查看命令行参数,那么父进程创建子进程的时候,需要在子程序和参数中加上空格号。比如:
父进程:
CreateProcess(“c://test.exe”,“ -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, π);
子进程中,lpCmdLine参数为-p,没有空格了。
3.如果想获得子进程的完整命令行参数,调用GetCommandLine函数。通常通过GetCommandLine函数获得的命令行参数,是父进程调用时的完整参数。
CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, π);
子进程中,GetCommandLine返回的参数为c://test.exe -p,注意没有双引号
以下情况都是调用GetCommandLine函数获得命令行参数
4.CreateProcess第一个参数是NULL,第二个参数指定子应用程序和命令行参数,那么子进程的命令行参数是第二个参数,不带双引号。比如:
父进程:
CreateProcess(NULL, “c://test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, π);
子进程中,GetCommandLine获得的命令行参数为c://test.exe -p
5.CreateProcess第一个参数指定子应用程序路径和文件名,第二个参数为NULL,那么子进程的命令行参数是第一个参数,带双引号。比如:
父进程:
CreateProcess(“c://test.exe“, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, π);
子进程中,GetCommandLine获得的命令行参数为”c://test.exe“
6.CreateProcess第一个参数指定子应用程序路径和文件名,第二个参数为传递给子进程的参数,那么子进程的命令行参数是第二个参数,不带双引号。比如:
父进程:
CreateProcess(“c://test.exe“, ”-p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, π);
子进程中,GetCommandLine获得的命令行参数为-p。
此处注意同第二点比较,如果用lpCmdLine查看命令行参数,没什么都没有。但是将”-p”改成” -p”,用可以看到参数是-p,是不是很混乱?
createprocess 用法
int i=1;
i=CreateProcess(NULL,"E:\\liucheng.exe", NULL, NULL, FALSE,NORMAL_PRIORITY_CLASS, NULL, NULL, &si, π);
返回这样的值你也真牛啊。
,"E:\\liucheng.exe",
这个文件存在吗?
操作系统的实验吗?
运行文件createprocess失败,显示错误码,该如何解决
重新下载看看, 你肯定安装的指定系统有了问题。
方法:
1、开始-运行-输入“regedit”并回车。
2、打开HKEY_LOCAL_MACHINE\SOFTWARE发现有2项OpenVPN项,如下示:
3、删除不正确的项OpenVPN-GUI。
4、关闭注册表窗口后再次打开应用程序已能正常访问。
C语言中的createprocess()函数参数是什么
#include 《windows.h》
BOOL CreateProcess
(
LPCTSTRlpApplicationName,
LPTSTRlpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes。
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
详见百度百科
用createprocess函数创建进程的意义是什么
是windows调用的createprocess函数,并不是没有用createprocess函数。
《windows程序设计》摘抄:
操作系统事实上并不是真的调用main函数,而是去调用C/C++运行期启动函数,此函数初始化C/C++运行期库。因此,在应用程序中可以调用malloc和free之类的函数。它也会保证在用户的代码执行之前所有的全局的或静态的C++对象能够被正确的创建,即执行这些对象构造函数中的代码。
组成Win32进程的两个部分:
(1)进程内核对象。操作系统使用此内核对象来管理进程,也是操作系统存放进程统计信息的地方。
(2)私有的虚拟地址空间。此地址空间包含了所有可执行的或者是DLL模块的代码和数据,它也是程序动态申请内存的地方,比如说线程堆栈和进程堆。
在控制台应用程序中,C/C++运行期启动函数会调用程序入口函数main,所以如果程序中没有main函数的实现代码的话,连接器将返回“unresolved external symbol”错误。Win32应用程序的启动过程就是进程的创建过程,操作系统是通过调用CreateProcess函数来创建新的进程的。当一个线程调用CreateProcess函数的时候,系统会创建一个进程内核对象,其使用计数初始化为1.此进程内核对象不是进程本身,仅仅是一个系统用来管理这个进程的一个小的数据结构(PCB,Process Control Block)。系统然后会为新的进程创建一个虚拟地址空间,加载应用程序运行时所需的代码和数据。
系统接着会为新进程创建一个主线程,这个主线程通过执行C/C++运行期启动代码开始运行,C/C++运行期启动代码又会调用main函数。如果系统能够成功创建新的进程和进程的主线程,CreateProcess函数返回TRUE,否则返回FALSE。
createprocess失败 代码2 怎么解决
使用CFileDialog选择文件了以后,会在其内部调用“SetCurrentDirectory“设置被选择文件的目录为当前路径。
因此如果文件和程序不在同一路径,那么CreateProcess使用内部调用的相对路径就可能找不到对应程序,所以导致createprocess出现错误代码2的情况。解决办法是CreateProcess使用可执行文件的绝对路径便可以解决文件和程序不在同一路径的问题。
扩展资料:
CreateProcess部分参数含义
1、lpApplicationName
指向一个NULL结尾的、用来指定可执行模块的字符串。
这个字符串可以是可执行模块的绝对路径,也可以是相对路径,在后一种情况下,函数使用当前驱动器和目录建立可执行模块的路径。
这个参数可以被设为NULL,在这种情况下,可执行模块的名字必须处于 lpCommandLine 参数最前面并由空格符与后面的字符分开。
2、lpCommandLine
指向一个以NULL结尾的字符串,该字符串指定要执行的命令行。这个参数可以为空,那么函数将使用lpApplicationName参数指定的字符串当做要运行的程序的命令行。
如果lpApplicationName和lpCommandLine参数都不为空,那么lpApplicationName参数指定将要被运行的模块,lpCommandLine参数指定将被运行的模块的命令行。
新运行的进程可以使用GetCommandLine函数获得整个命令行。C语言程序可以使用argc和argv参数。
3、lpProcessAttributes
指向一个SECURITY_ATTRIBUTES结构体,这个结构体决定是否返回的句柄可以被子进程继承。如果lpProcessAttributes参数为空(NULL),那么句柄不能被继承。
在Windows NT中:SECURITY_ATTRIBUTES结构的lpSecurityDescriptor成员指定了新进程的安全描述符,如果参数为空,新进程使用默认的安全描述符。
4、lpThreadAttributes
同lpProcessAttribute,不过这个参数决定的是线程是否被继承,通常置为NULL。
用CreateProcess创建一个进程 急!!!
wshowwindow
ignored
unless
dwflags
specifies
startf_useshowwindow.
所以呢,dwflags要指定为startf_useshowwindow
msdn中startf_useshowwindow写到:如果这个值没有被指定,wshowwindow
被忽视。
if
this
value
is
not
specified,
the
wshowwindow
member
is
ignored.
先设定dwflags的值为startf_useshowwindow。

本文相关文章:
dos命令大全及用法?我的世界1.7.2死亡不掉落的指令是什么(不用命令方块)
2025年6月16日 04:00
命令提示符有什么用?命令提示符中哪些命令可以查看自己电脑的网络装况或者查看一个局域网中其它电脑的情况
2025年6月15日 00:50
arp -a是什么命令和arp -d是什么命令?arp -s命令怎么用
2025年6月14日 17:50
魔兽世界单机版3 35(魔兽世界单机版3.35怎么改等级,账号等级,还有怎么输GM命令啊)
2025年6月1日 17:50
红色警戒3命令与征服(红警3起义时刻和命令与征服有什么区别)
2025年5月11日 12:20
更多文章:
p2p搜索神器官方下载(p2psearcher软件为什么现在搜索的格式都是磁力链格式搜索不到原来的视频格式了)
2026年5月24日 21:00
flash激活序列号(求adobe flash pro cs5激活码(全部))
2026年8月16日 06:20
暑假带孩子去哪里旅游最好国内(暑假带孩子去国内哪里旅游最好)
2026年1月31日 02:30
班智达藏文输入法(藏文班智达下载以后怎么切换输入法程序图片)
2025年5月10日 05:00
阿拉德之怒官方网站下载(阿拉德之怒80版本安卓游戏官方下载)
2026年4月11日 08:30
金士顿自带加密软件(金士顿u盘加密软件,小编教你如何使用加密工具)
2026年6月28日 03:10
冰封王座带市场的大地图(魔兽争霸3冰封王座中那些地图有酒馆,要全的)
2026年9月5日 20:30
气球塔防5中文版(气球塔防5超人猴的太阳神塔可以吸收哪些技能最多可以吸几个吸收的防御塔需要最终形态吗吸收哪个比)
2026年5月30日 20:30
神庙逃亡2电脑版下载庙逃亡(刚刚入手个iphone,请问《神庙逃亡2》在哪可以下载啊,手机没越狱,下这个游戏不花钱吧)
2026年6月12日 17:50
















