草庐IT

forward_static_call

全部标签

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 - resource.h 文件中的 IDC_STATIC 是什么意思?

我有一个由VS2012生成的简单Win32项目。在resource.h文件中,我看到了这个:#ifndefIDC_STATIC#defineIDC_STATIC-1#endif我发现它在resource.rc文件中的几个地方被引用。但我不明白这是什么意思。我也没有在网上找到有关它的引用资料。有什么想法吗? 最佳答案 通过调用CreateWindowEx创建子控件时,您必须分配一个控件ID(通过重载的hMenu参数)。控件ID稍后可用于引用控件,而无需存储动态创建的HWND(例如,调用GetDlgItem或GetDlgItemInt时

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”以将错误传递回调

php - fatal error : Call to undefined function pg_connect

我正在使用Windows7、php5.3.5和WAMP服务器。我有两个php文件:trigger.php和background.php。我想将background.php作为后台进程运行。我必须从trigger.php调用这个文件。为此,我使用了以下方法。我在trigger.php中包含了以下代码,使background.php在后台处理。$handle=popen('start/bC:\wamp\bin\php\php5.3.5\php.exeC:\wamp\www\email3.php','r');在background.php中,我有以下代码连接到数据库。$conn_string