草庐IT

enqueue_call

全部标签

windows - Windows 7 中丢弃的 CALL 批处理文件环境变量

我已经成功地使用CALL机制允许一个批处理文件调用另一个来设置环境变量。这段代码在WindowsXP上运行了一年多。但是,它在Windows7上的工作方式似乎不同。变量存在于第二个批处理文件中,就在EXIT/B语句之前。但是,返回到第一个批处理文件时它们不存在。一些简单的示例似乎按预期工作,但大型批处理脚本却没有。有没有人对此有困难或知道任何解决方法? 最佳答案 在多年的高级批处理脚本编写中,我从未见过CALL无法保留环境变量,除非被调用的脚本(或标签)在SETLOCAL仍处于事件状态时设置变量。在CALL终止时,CALL中的每个事

c++ - 好坏 : Calling destructor in constructor

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。ImprovethisquestionBreak:我不认为这实际上是同一个问题,另一个问题是关于手动调用析构函数的一般问题。这是在类本身内部的创建过程中。仍然想知道执行此操作时会发生什么,如下面的问题所述。起初,我认为它很糟糕,真的很糟糕。只是分析构造函数的这段代码(见下文),由两个人编写,需要将其转换为Delphi对象Pascal。它的行为必须与C版本相同。我不喜欢这种风格,非常丑陋,但没关系。另一件事,在代码的两个阶段,它

windows - windows批处理中call和cmd/c的区别

谁能解释一下callsomeBatchFile.bat...和cmd/CsomeBatchFile.bat...他们都被建议给我作为this的解决方案问题,但我不明白为什么它们都有效,更重要的是,如果有任何重大差异我必须注意。 最佳答案 区别在于call在调用程序的相同上下文中执行另一个批处理文件,因此它们共享相同的环境变量和其他状态(如echoON/OFF或延迟扩展),而cmd/C在完全独立的上下文中执行另一个批处理文件,因此在被调用的批处理文件中所做的任何更改不是反射(reflect)在原始文件中。作为个人笔记,我曾经将通过ca

c++ - Asm CALL 指令 - 它是如何工作的?

我很想清楚地解释一下,在Windows环境(PE可执行文件)中,CALLXXXXXXXXXXXXXXX指令是如何工作的。我一直在研究PE格式,但我对CALLADDRESS指令、从dll中导入函数以及CALLADDRESS如何到达DLL中的代码之间的关系感到很困惑。除了ASLR和其他安全功能可能会围绕DLL移动之外,可执行文件如何应对这种情况? 最佳答案 它(即,直接调用带有普通相对调用的导入)不起作用,这就是为什么它不是这样做的原因。要调用导入的函数,您需要查看导入地址表(IAT)。简而言之,IAT中的条目首先指向函数名称(即它开始

windows - 通缉 : WinAPI calls logger

有一个“APIMonitor”程序,但似乎已停产。在我的系统上不起作用。有没有这样的工具,可以在Windows7x64上运行?我需要记录来自选定集合的API调用,最好是参数值。 最佳答案 我在http://www.rohitab.com/apimonitor使用API监控工具.它并没有被遗弃,作者似乎会定期发布更新,包括过去一年的一些更新。我发现它相对容易学习,并用它来发现我正在研究的Windows某些组件发出的API调用,以及其他调试任务。 关于windows-通缉:WinAPIcal

windows - .bat 中的 IF、CALL、EXIT 和 %ERRORLEVEL%

任何人都可以帮助我理解%ERRORLEVEL%变量的行为,以及为什么在CALL之后没有在IF中设置它>,即ECHO%ERRORLEVEL%.2行?@ECHOOFFSETERRORLEVELVERIFY>NULECHO%ERRORLEVEL%.0IFERRORLEVEL1ECHOSNAFUIF%ERRORLEVEL%==0(ECHO%ERRORLEVEL%.1CALL:FOOECHO%ERRORLEVEL%.2IFERRORLEVEL42ECHO42.3)GOTO:EOF:FOOEXIT/B42GOTO:EOF标准输出C:\Users\Ilya.Kozhevnikov\Dropbox>f

c++ - Windows C++ : How can I redirect stderr for calls to fprintf?

我正在将来自BSD项目的现有C++代码包装在我们自己的自定义包装器中,我想将它集成到我们的代码中,并尽可能减少更改。此代码使用fprintf打印到stderr以记录/报告错误。我想将其重定向到同一进程中的另一个位置。在Unix上,我使用socketpair和thread完成了此操作:套接字的一端是我发送stderr(通过调用dup2),另一端在一个线程中被监控,然后我可以在其中处理输出。这在Windows上不起作用,因为套接字与文件句柄不同。我在网上找到的所有文档都显示了如何重定向子进程的输出,这不是我想要的。如何在写入输出时在同一进程中重定向stderr以获得某种回调?(在你这么说之

windows - WMIC:如何在特定工作目录中使用 **process call create**?

任务是使用wmicprocesscallcreate"c:\folder\app.exe"启动一个程序,并让app.exe访问它自己的支持文件app.exe主文件夹树。下面的批处理脚本说明了WMIC静默更改工作目录的问题,因此无法找到支持文件。此脚本创建了第二个名为one.bat的批处理文件,它只需从同一文件夹中键入一个url.txt文件,即可显示www.google。com在控制台上。当使用wmic创建进程时,wmic会悄悄地更改工作目录,以便找不到one.bat并且如果我将完整路径指定为d:\abc\one.bat然后one.bat将启动,但它找不到要键入的名为url.txt的文件

php - fatal error : Call to undefined function sem_get()

我是PHP的新手,我正在尝试在我的Windows开发机器上运行从其他人那里获得的代码。我安装了PHP5和Apache2.2,但是当我尝试运行它时出现错误:Fatalerror:Calltoundefinedfunctionsem_get()它被抛出的行是:privatefunctionUpdateCounter($semkey,$memkey,$count){$sem_h=sem_get($semkey,1);//thislineistheproblem...} 最佳答案 sem_get()函数由Semaphore,SharedMe

windows - 如何从 'call' ed 例程中终止 Windows 批处理文件?

我有一个Windows批处理文件,里面有一些子例程,如下所示:call:agoto:eof:acall:bgoto:eof:b::HowdoIdirectlyexitherefromhere?goto:eof我在Vista的cmd窗口中运行它。如果我在批处理文件中的某处检测到错误,我希望它以非零错误级别退出。有什么我可以在例程中写的吗:b会导致批处理文件像这样终止。我试过“退出”,它会关闭整个cmd窗口。那不是我想要的。我试过“exit/B1”。这又回到了之前的例程。要在每次“调用”后使用此方案,我必须在每次“调用”后仔细编写“iferrorlevel1exit/B1”以将错误传递回调