草庐IT

实际上

全部标签

C++ - LoadLibrary() 是否实际链接到库?

我正在使用Code::Blocks并且讨厌手动链接DLL。我找到了LoadLibrary()功能,我想知道它是否像.a一样工作或.lib文件会。这个功能是这样工作的吗?如果没有,我可以通过编程方式(如果有的话)做什么来链接DLL,而不必通过执行Project来链接DLL。方法? 最佳答案 LoadLibrary将请求的库(以及它需要的所有库)加载到进程的地址空间中。为了访问该库中的任何代码/数据,您需要找出新加载的内存区域中的代码或数据地址。您需要使用GetProcAddress.此过程与在构建时添加库之间的区别在于,对于构建时库,

node.js - -print 通过 npm 打印出字符串,但实际上通过 powershell 进行评估

我的package.json中定义了以下脚本:"abc":"node-p'p=require(\"./package\");p.main=\"lib\";p.scripts=p.devDependencies=undefined;JSON.stringify(p,null,2)'",如果我运行“npmrun-scriptabc”,我最终会得到一个带有字符串的package.json'p=require(\"./package\");p.main=\"lib\";p.scripts=p.devDependencies=undefined;JSON.stringify(p,null,2)'

windows - 写入 CPU 寄存器实际上是如何工作的?

当写入一个寄存器时,比如movax,1,它会覆盖它之前可能拥有的值。现在我想知道的是,我可以将多大的数字/字符串输入寄存器,并且另一个应用程序可以覆盖我的应用程序的寄存器值吗?我的意思是,寄存器是在进程之间共享,还是它们接收自己的沙盒/虚拟寄存器?我对Intelx86(-64)核心CPU和Windows很感兴趣。 最佳答案 在单个内核上一次只能调度一个线程。核心是有寄存器的东西。调度新线程时,首先保存寄存器,恢复线程之前保存的寄存器。这包括程序计数器寄存器,它指向下一条要执行的指令。寄存器(来自内存):AX、BX、CX、DX是16位

python - Windows:在 Windows 资源管理器中按下 Ctrl+C 时实际发生了什么

我正在使用Python为Windows操作系统设计一个复制/粘贴应用程序。现在我想使用“Ctrl+V”热键注册我的应用程序,这样当任何人按下“Ctrl+V”时,粘贴就会通过我的应用程序完成而不是通过Windows默认的复制/粘贴应用程序。但我不知道如何获取要复制的文件路径列表以及要进行粘贴的目标窗口的路径。所以我想知道实际上是什么当有人在Windows资源管理器中按下Ctrl+C键时发生 最佳答案 当有人在资源管理器中按下Ctrl+C键时,资源管理器调用OleSetClipboard()并使用包含各种格式的IDataObject,其

windows - 函数 Hook 实际上是如何工作的? WinAPI, C++

我正在将我的DLL注入(inject)到一个进程中,然后像这样Hook一个函数:(recv)BOOLHookFunction(LPCWSTRmoduleName,LPCSTRfuncName,LPVOIDfuncProxy,unsignedchar*lpBackup){BYTEjmp[6]={0xe9,0x00,0x00,0x00,0x00,0xc3};DWORDfuncAddr=(DWORD)GetProcAddress(GetModuleHandle(moduleName),funcName);DWORDprev;VirtualProtect((LPVOID)funcAddr,6,

c - 实际结束从终端读取需要两个 EOF

我一直在努力理解EOF是如何工作的。在我的代码(在Windows上)调用EOF(Ctrl+Z和Enter)首先不起作用时间,我必须提供两个EOF才能真正停止读取输入。此外,第一个EOF被读取为一些垃圾字符,当我打印输入时会显示这些字符。(我们可以在提供的输出中看到垃圾字符显示在末尾)。这是我的代码:-#include#defineMax1000intmain(){charc,text[Max];inti=0;while((c=getchar())!=EOF){text[i]=c;i++;}printf("\nEnteredText:\n");puts(text);return0;}我的

windows - 是否可以在没有实际窗口的情况下在 Windows 操作系统上显示 "on screen"文本?

这个库正是我在Linux系统上所说的:http://ichi2.net/pyosd/我对Win32API的了解有限,但在我看来,除非你创建一个窗口并进入win32主循环,否则你无法做到这一点。一些谷歌搜索也证实了这一点。即便如此,它们是否是更新的GUI框架或技术可以在Windows上实现它?谢谢 最佳答案 您不需要讨厌的GUI框架。您可以:Drawdirectlyonthedesktop.当然,这通常不被认为是一个好主意,因为它会破坏另一个应用程序的内部结构。以这种方式绘制也很脆弱,因为每次桌面重新绘制时您所做的更改都会被删除。创建

.net - WPF 窗口位置属性 Left、Top、Height 和 Width 是否实际上是双倍的?

位置属性Left,Top,Height和WidthWPF窗口的是double。然而当interactingwithwindowsmessages喜欢WM_MOVING和WM_MOVE,必须将double转换为integraltype.这对我来说似乎没问题,因为所有Windows通知似乎都在其所有位置参数中使用整数类型,我想这些消息与WPF位置属性密切相关。所以问题是,我的这个假设是否正确,或者Windows通知实际上是双倍的,最终会有一些奇怪的副作用吗? 最佳答案 在WPF窗口中,这些属性实际上映射到窗口的位置,正如您所指出的(在W

windows - 使用 Windows cmd 或 Cygwin,有没有办法用正确的大小写获取实际文件路径/名称?

有没有办法使用Windowscmd或Cygwin来获取大小写正确的实际文件路径/名称?例如,输入:c:\windows\system32\display.dll输出C:\Windows\System32\Display.dll 最佳答案 您可以使用FOR/F来回显或获取大小写更正的文件名for/F"delims="%%Xin("c:\windows\system32\display.dll")doecho%%~fX盘符的大小写好像还未确定。对于同一个驱动器,它可以是大写或小写。我测试了它c:\>pushdC:\C:\>popdc:\

windows - 有什么方法可以判断 Windows 目录是否可写而无需实际写入它进行测试?

我有一些旧的vb6代码,通过写入Windows目录然后读回值来检查Windows目录是否可写。但是...我们有一个病毒扫描程序将其视为可疑行为,所以我想在不接触它的情况下进行检查。有任何WindowsAPI调用吗?(适用于Win98及以上版本) 最佳答案 这里要记住的是文件系统是易变的。我能看到这段代码被使用的唯一方法是首先检查文件夹是否可写,然后尝试写一些你想写的东西。这里的问题是,对于易变的文件系统,在您进行检查和尝试写入之间,事情可能会发生变化。因此,如果您的写入失败,您仍然必须能够处理异常。这意味着初始检查几乎被浪费了。最好