草庐IT

kkt条件

全部标签

c++ - 确保 Windows 正确初始化指向导入函数的函数指针所需的条件是什么?

导入库的实现方式——在here中有描述。—令我感到惊讶的是,指向导入函数的函数指针从未被初始化。据说——来自ahighlyacclaimedarticle—这些函数指针以某种方式被视为IAT中的一个条目,以便Windows及时适本地初始化它们。这些看起来像普通函数指针的函数指针有什么特别之处,使得编译器将它们视为IAT中的一个条目? 最佳答案 C++编译器可以通过两种方式实现在C++代码中声明的函数指针,这些函数指针使用指向导入函数的指针进行初始化。对于C++编译器,最简单的方法是用导入库中stub函数的地址初始化指针。或者,它可以

windows - 批处理 - 启动函数的 IF ELSE 条件不管怎样都会执行

如果这里有帖子可以回答我的问题,请提前致歉,我从周五开始就一直在研究这个问题,并且一直在四处寻找。我确实发现了一些类似的问题,但没有一个是我可以应用或适应的(据我所知)。简而言之,我有一个批处理脚本,它创建一个目录的文本文件,然后该脚本在该目录中搜索一个文件。如果文件存在,它会关闭,如果文件不存在,它会运行安装程序。我的脚本atm看起来像这样:@echooffdir"C:\SomeDirectory">DIRECTORY.txttimeout5>Nulfindstr"SomeProgram.exe"DIRECTORY.txtifErrorLevel=0(@echoProgramFoun

windows - WiX 安装程序条件编译?

我的主要可执行文件有两个版本:standard和premium。为了简化开发,它们是通过更改特殊的#define变量从VisualStudio中的单个解决方案构建的。现在我很好奇是否可以对这个项目的WiX安装程序做同样的事情?我基本上需要控制只包含以下xml节点之一:1:对于标准版本MSI:及以后:2:对于premium版本MSI:然后:附言。我显然可以制作2个WiX项目...我正在寻找一种方法来完成它。 最佳答案 我找到了。Hereitis对于其他感兴趣的人。 关于windows-Wi

windows - 使用批处理文件删除有条件的特定文件夹

我是批处理脚本的新手,不知道如何编写一个批处理文件来删除c:\root中具有条件的特定文件夹。条件:如果文件夹名称不是“Paul”、“Mike”、“Daniel”和“皮埃尔”如果文件夹没有子文件夹或文件Action:删除那个文件夹。在我的例子中,c:\root\test1应该和这个批处理文件一起删除。c:\rootc:\root\Paulc:\root\Mikec:\root\Mike\assignmentc:\root\Mike\assignment\assignment1.txtc:\root\Danielc:\root\Daniel\examc:\root\Pierrec:\ro

windows - 为什么我的 Windows 批处理文件在满足条件后一直循环?

基本上,我想将最新版本的MSI从服务器复制到我的本地计算机。我正在尝试遍历一个文件并获取包含最新版本MSI的第一行。我并不完全熟悉批处理文件中for循环和if语句的怪异之处。这是我找到第一行后不断循环的代码:cd%~dp0mkdir"c:\MyApp\QA\msi"remDeterminewhatfolderisthelatestversionofQAsetlocalenabledelayedexpansiondir/b/o-n"\\my-server\folder\another_folder\5.0.*">output.txtSET/acounter=1SETversion=""f

windows - 如果操作系统支持,如何有条件地执行功能?

我想构建一个调用CancelIoEx的应用程序在WindowsVista和更新版本(支持)上,在WindowsXP(不支持)上执行其他操作。如果我在Windows7下编译应用程序但在WindowsXP下运行它会怎样?运行时会发生什么?我会遇到某种加载错误吗?如何让我的应用程序根据运行时使用的操作系统选择一个或另一个代码路径(避免加载错误)?请提供示例代码。更新:请注意,WindowsXP上存在DLL,但函数不存在。 最佳答案 是的,引用不存在的DLL导出的应用程序将无法加载。添加代码以根据操作系统版本采取不同的路径不会有太大帮助,因

windows - IUpdateSearcher 的搜索条件中的 "IsPresent=1"和 "IsInstalled=1"有什么区别

我正在尝试使用IUpdateSearcher接口(interface)的搜索方法的WUAAPI检索Windows更新。我已将搜索条件传递为“IsInstalled=1或IsPresent=1”。请在下面找到示例代码。IUpdateSearcher*searcher;ISearchResult*results;/*..CodetoinitializeCOMandgetUpdateSearcher*/..*/hRes=searcher->Search("IsInstalled=1orIsPresent=1",&results);我已经在MSDN中查看了IsInstalled和IsPrese

Windows批处理脚本在if条件下替换子字符串

尝试将11/22/2016替换为11222016。为此,我尝试了以下操作并按预期工作。setstring=dd/mm/yyyy.setfind=/setreplace=callsetstring=%%string:!find!=!replace!%%echo%string%输出是ddmmyyyy但是当我在if条件下尝试这样做时,它没有按预期工作。setlocalenabledelayedexpansionsetisDateFound=falsesetstring=dd/mm/yyyy.if"%isDateFound%"=="false"(echo%isDateFound%setfind

windows - "IF"之后的链式命令有条件地使用 &

如果没有创建文件夹,我正在尝试检查是否已创建文件夹IFNOTEXISTdist\\js(MKDIRdist\\js)然后不管它是否创建了我要运行的文件夹&uglifyjsdev/*.js-m-odist/js/app.js现在看来&不起作用。如果文件夹存在,则不执行第二个命令。如果我使用以下内容作为我的第一条陈述:IFNOTEXISTdist\\js(MKDIRdist\\js)ELSE(Echoexist)我第一次将两者一起运行,如下所示:IFNOTEXISTdist\\js(MKDIRdist\\js)ELSE(Echohate)&echoLove&uglifyjsdev/*.js

windows - 多个进程共享一个 DLL 的必要条件

我在理解我从Microsoft读到的以下声明时遇到了问题。它说“在相同基地址加载相同DLL的多个进程在物理内存中共享DLL的单个副本。”所以我的理解是,如果一个DLL必须在不同进程之间共享,那么该DLL必须加载到每个进程虚拟内存中的相同基地址。为什么会这样?如果进程加载到不同进程虚拟地址空间中的不同基地址会发生什么情况,因为最终所有进程都将访问相同的物理内存以共享DLL。 最佳答案 图像部分绑定(bind)到磁盘上的文件。虽然我们不修改部分集中的某些页面-此页面将共享并由图像文件支持。但如果我们修改页面-它不能更多地由图像文件支持。