草庐IT

windows - 应该使用 "__imp__ApiName@N"还是 "_ApiName@N"?

我用DUMPBIN转储了一个WindowsSDK.lib文件(kernel32.lib),输出显示每个API名称都有两个“版本”,例如:_imp_ExitProcess@4和_ExitProcess@4那么,为什么会有两个相同但名称不同的重整?.假设我想从NASM调用ExitProcess,当声明EXTERN时我应该使用它们中的哪一个?我的实践告诉我,我可以调用它们中的任何一个,但我不知道哪个是“正确的”或“首选的”坚持下去。 最佳答案 我认为_imp_版本旨在与VisualC++编译器上的__declspec(dllimport)

windows - 静态类和 "this"关键字

我有一个带有自定义事件的静态类,如下所示://ThedelegatepublicstaticdelegatevoideventDoneDelegate(objectsender,WebLoaderEventArgse);//TheeventthatusesthedelegatepublicstaticeventeventDoneDelegatePageRequestDone;//CallstheeventprivatestaticvoidonPageRequestDoneChanged(WebLoaderEventArgse){if(PageRequestDone!=null)Page

windows - 如何使用 AutoIt 在 Windows 中打开 "Run Window"?

我正在尝试在Windows操作系统中打开运行窗口(Win+R):Send("{LWINdown}{RWINdown}{Rdown}{RWINup}{LWINup}{Rup}")还试过:Send("#R")但出于某种原因,它在我的AsusEeePC上不起作用,但它在我的主PC上运行。可能是什么问题?也许有比模拟Win+R更好的打开运行窗口的方法?或者上网本使用其他代码作为Win键? 最佳答案 Send("#R")发送start+shift+r。它应该是Send("#r")。长版是:Send("{LWINdown}{rdown}{rup

c# - 如何从 C# 控制台应用程序内部触发 "Task Failed"?

我有一个使用WindowsServer2008任务计划程序执行的C#控制台应用程序,但是当应用程序内部发生异常时,我仍然在事件日志中显示“任务已完成”。我想在发生异常时触发失败的任务。 最佳答案 你应该让你的控制台应用程序返回一个不同于0的int:classProgram{staticintMain(string[]args){try{do_stuff();return0;}catch(MyExceptionexc){return1;}}} 关于c#-如何从C#控制台应用程序内部触发"T

windows - Windows批处理下无法使用 "git.exe fetch origin"内的管道

我写了一个批处理来检查和部署来自github的rails应用程序,批处理文件见下文。问题是git.exefetchorigin|find"remote:CountingObjects"总是返回errorlevel1,即使我们有新的提交也是如此。我必须先终止Rails应用程序,因为某些文件被锁定(*.jars)并导致gitpull命令失败。我搜索并找到了下面的主题,但即使使用git.exe而不是git.cmd,问题仍然存在。CheckifpullneededinGitgitbash:howtocheckifthere'sanewcommitavailable我尝试使用一个临时文件来存储g

windows - Windows 注册表重定向是 "bad thing"吗?

我有自己的安装程序,用于安装我编写的几个应用程序。我一直在更新这个程序以避免应用程序的数据文件更新进入用户的VirtualStore,因为我读到这是一件“坏事”。为此,我将程序和公共(public)数据文件分别存储在正确的位置,而不是像我们在XP时代那样将所有内容都放在程序文件中。我现在也在使用SHGetFolderPath(是的,它已被弃用,但我仍然需要支持我的XP用户)来获取已知文件夹,而不是拖网注册表,这是另一个“坏事”(我读过)。我接下来要做的是重写安装程序代码,以避免在向HKLM写入内容时将注册表重定向到Wow6432Node,因为我认为这是另一件“坏事”。但是,尽管我可以将

windows - 为什么 Windows 团队复制 "Program Files"文件夹以支持 x86 和 x64?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion一个经常让我困惑的问题是,为什么Windows团队决定复制ProgramFiles文件夹以支持32位和64位平台?从长远来看,这不会给每个人带来更多的工作和困惑吗?促使他们复制树而其他一些系统保留单个“程序文件”目录(有点像MAC的通用二进制格式http://en.wikipedia.org/wiki/Universal_binary)的关键因素是什么?我敢肯定他们创建这个“ProgramFi

Python os.listDir 在某些文件夹上抛出 "WindowsError: [Error 5] Access is denied:"

基本上我有一个用Python2.6编写的FileExplorer类。效果很好,我可以浏览驱动器、文件夹等。但是,当我到达特定文件夹'C:\DocumentsandSettings/.*'*时,我的脚本所基于的os.listdir会抛出此错误:WindowsError:[错误5]访问被拒绝:'C:\DocumentsandSettings/.'这是为什么呢?是因为这个文件夹是只读的吗?还是Windows正在保护而我的脚本无法访问?!这是有问题的代码(第3行):deflistChildDirs(self):list=[]foriteminos.listdir(self.path):ifit

windows - 查找 "- "是否在目录名称中(批处理)

在一批中我有一个for/d/r%%ain(*)do如果%%a包含“-”(即空格+连字符+空格),我想执行一个操作,如果它不包含此字符串,我想执行另一个操作。我做不到!你有什么主意吗?谢谢。[PS:我的问题与这个类似:Batchfile:Findifsubstringisinstring(notinafile)但我无法调整它以使其工作!] 最佳答案 请试试这个:for/d/r%%ain("*-*")do它应该可以工作。编辑:for/d/r循环只会查找name中带有“-”的文件夹,因此需要额外测试路径不是必需的。

windows - "ABI-volatile"寄存器被视为跨函数调用的非 volatile

在Windowsx64上,考虑到一些额外的见解,何时允许编译器将ABI标记为volatile的寄存器视为非volatile寄存器?我有一个反汇编函数,其中r11用于在函数调用后恢复另一个寄存器的值;当根据this,r11本身在函数调用中被认为是可变的。例如(来自反汇编函数):myLibrary!MyClass::currentMemberFunction+0x18:callmyLibrary!MyClass::calledMemberFunctioncmpdwordptr[rsp+68h],0movrdi,raxjemyLibrary!MyClass::currentMemberFun