网上冲浪 | 反毒杀毒 | 菜鸟进阶 | 网络安全 | 实用技术 | 网络安全 | 操作系统 |
工具软件 | 电脑医院 | 网上赚钱 | 网页制作 | 网络营销 | 经典教程 | IT趣 谈 |
当前位置:IT快活林快活林学院经典教程

调用CreateProcess函数时它那个BOOL类型的参数如何传递

请问一下调用CreateProcess函数时,他那个BOOL类型的参数如何传递?
大家好,今天[{$WriteTime}]我在Delphi中调用CreateProcess函数时碰到一个问题.

在MSDN中CreateProcess的原型如下:

C/C++ codeBOOL CreateProcess(LPCTSTR lpApplicationName, // name of executable moduleLPTSTR lpCommandLine, // command line stringLPSECURITY_ATTRIBUTES lpProcessAttributes, // SDLPSECURITY_ATTRIBUTES lpThreadAttributes, // SDBOOL bInheritHandles, // handle inheritance optionDWORD dwCreationFlags, // creation flagsLPVOID lpEnvironment, // new environment blockLPCTSTR lpCurrentDirectory, // current directory nameLPSTARTUPINFO lpStartupInfo, // startup informationLPPROCESS_INFORMATION lpProcessInformation // process information);

可以看到他有一个BOOL类型的参数“BOOL bInheritHandles”,

我在调用时,对这一个参数直接或者间接传入True或者是False,

结果发现不管传入的是True还是False,效果(Effect)却都跟传入False一样.

请问一下是不是因为我对这一个BOOL类型的参数的传法搞错了呢?

向大家求教正确的方法,谢.


--
这一个是  继承  选择(Choose)---
句柄选项继承,是指的一些权限选项.如果父进程的权限相当大,那么可能在创建子进程的时候不希望他有那么大的权限,就会关闭该选项,然后使得子进程在默认的或者是指定所权限下执行.---

当然我是想问:

我用VC编了一个DLL,导出一个函数,代码为:

void _stdcall Test(BOOL bValue)
{
    if(bValue)
        MessageBox(NULL, "the parameter is True.", "Test", MB_OK);
    else
        MessageBox(NULL, "the parameter is False.", "Test", MB_OK);
}

然后我在delphi里调用,用以下语句声明这一个函数:

procedure Test(bValue: LongBool); stdcall; external 'DLL名' name 'Test';

接着这样调用:

Test(True);

结果弹出the parameter is False.

请问一下这是为何?太奇怪了.
---
引用 3 楼 huhu0013 的回复:

当然我是想问:

我用VC编了一个DLL,导出一个函数,代码为:

void _stdcall Test(BOOL bValue)
{
    if(bValue)
        MessageBox(NULL, "the parameter is True.", "Test", MB_OK);
    else
        MessageBox(NULL, "the parameter is False.", "Test", MB_OK);
}

然后我在delphi里调用,用以下语句声明这一个函数:

procedure Test(bValue: LongBool); stdcall; external 'DLL名' name 'Tes…

没您说的这问题.---

不怎么会吧,可是我老是出问题,郁闷~---
在C/C++当中,不等于0则表示为“真”,不然的话表示“假”,所以建议通过追踪寄存器,或者是通过单步执行来看看实际执行的代码.---
CPU Debug看见是0就是False,1就是True
您的Handle为可继承才有用的---

请问一下快活林网友能介绍一下调试技术吗?

调试都有哪些方法?哪里有学习资料?

小弟弟我对调式程序(Procedures)(Procedures)还没任何经验.

谢.---
View->Debug Window->CPU Window
[]作者:本站整理  来源:不祥