草庐IT

python - ctypes dll 调用在 ipython 中有效,但在常规 python 中无效

注意:我最初的问题因题外话而被关闭,但我将重新提交此问题并为任何可能遇到类似问题的人提供答案我的系统详细信息:Windows1064-bitPython3.664-bit不幸的是,由于保密原因,我无法共享数据文件或dll,但我正在使用供应商提供的dll(用Delphi编写)来读取二进制仪器数据文件。我也无权访问源代码,也无权获得详细的编码支持。下面显示了一个名为filereadtest.py的示例脚本。importctypesbinary_file=r"C:\path\to\binaryfile"dll_file=r"C:\path\to\dll.dll"dll=ctypes.WinD

windows - 如何控制 Windows DLL 从应用程序导入哪些符号?

我正在尝试使用MSVC6(复古!)在Windows上构建共享库(DLL),但我有一个特殊的链接问题需要解决。我的共享库必须访问一些全局状态,由加载应用程序控制。大体上,我所拥有的是:应用程序.c:staticintg_private_value;intuse_private_value(){/*dosomethingwithg_private_value*/}intmain(...){returnshared_library_method();}共享库.c:__declspec(dllexport)int__stdcallshared_library_method(){use_priv

windows - 在 Windows 上重命名 DLL

我正在使用VisualStudio2003在Windows上构建应用程序。我的应用程序正在链接到第3方库(Qt)。lib称为qtcore4.lib和dllqtcore4.dll。我的应用程序是另一个基于Qt的应用程序的插件,该应用程序使用相同qtcore4.dll的不同版本。不幸的是,我不能使用与主机应用程序相同的Qt版本,所以我在想如果我重命名我的Qt版本的库和DLL是否可行,例如:qtcore4_my.libqtcore4_my.dll我猜qtcore4.lib指的是里面的qtcore4.dll。所以我不确定这是否有效。 最佳答案

java - ntdll.dll 是 Windows XP 和 Windows Vista 的标准配置吗?

ntdll.dll是WindowsXP和WindowsVista的标准配置吗?我知道我的WindowsXP机器上有它,但我不确定这是否是每台机器的标准配置。我很好奇的原因是NTQuerySystemInformation函数可以获取windowsXP和/或WindowsVista系统的CPU使用率。 最佳答案 是的,但是您要使用的函数不会可能不会。根据MSDN,NTQuerySystemInformation在未来的Windows版本中可能会被更改或不可用。你应该使用GetSystemInfo相反,它位于Kernel32.dll中,

c++ - 如何在不注入(inject)任何 DLL 的情况下单击窗口时返回窗口句柄?

对于我的一个项目,我需要创建一个函数,当用户单击窗口(屏幕上显示的任何窗口,以及该窗口内的任何位置)时,该函数将返回一个窗口的句柄。我知道可以使用全局Hook,但我认为必须有一种更简单的方法,无需使用任何DLL注入(inject)。事实上,我可以在激活窗口时拦截鼠标左键单击或拦截。我可以在没有任何DLL注入(inject)的情况下使用这两种解决方案中的一种吗? 最佳答案 你可以使用LowLevelMouseProchook拦截点击,然后使用WindowFromPoint来确定窗口。(我还没有真正尝试过这个。)

c++ - 在 C++ 中的 dll 中使用函数?

我在类名前使用__declspec(dllexport)在C++中创建了一个dll。现在,当我尝试在另一个C++程序中使用它时,它会在两者之间崩溃。当我调试它时,我发现函数指针根本没有初始化。请帮帮我。usingnamespacestd;typedefvoid(*func)();intmain(){funcfuncpointer;HINSTANCExyz=LoadLibrary(TEXT("C:\\extra\\dll\\dlls\\debug\\random.dll"));funcpointer=(func)GetProcAddress(xyz,"getit");funcpointe

windows - COM dll 不再注册

我正在尝试注册一家公司发送给我的COMdll,用于与他们的其中一台设备通信。我以前能够在这台计算机上注册它,但几天前它开始抛出错误,所以我注销了它,现在将它传递给regsvr32.exe失败了"ThemoduleIRAnalyzerCOM.dll"failedtoloadMakesurethebinaryisstoredatthespecifiedpathordebugittocheckforproblemswiththebinaryordependent.DLLfilesThespecifiedprocedurecouldnotbefound我试过用depends.exe打开regs

windows - vmware image windows 7 无法初始化 winring0 dll?

我有一个带有Windows7的vmware镜像,一个程序需要winring0dll,但是当我启动该程序时,我收到错误消息:我无法初始化winring0dll,但我的程序可以在nativeWindows7中运行?这是vmware镜像的已知问题吗?如何在vmware镜像中初始化winring0?在我的文件夹中有32位和64位的winring0dll。 最佳答案 基本上,您是在尝试在虚拟硬件上查找有关您的硬件的信息。光是这个概念就可能充满问题。如果您的处理器不支持VT-x(假设是英特尔),VMware会利用二进制转换(Seehere)在内

C++:关于加载DLL和调用函数的一件小事

我一直在寻找一些dll或类来获取客户端的硬件信息,终于找到了:http://www.soft.tahionic.com/download-hdd_id/index.html谁能告诉我如何像下面那样调用函数?我在C中使用了这段代码,它可以工作。现在我无法将其转换为C++。char*(__stdcall*GetIDESerialNumber)(BYTE);HINSTANCEDllInst=NULL;if(DllInst==NULL)DllInst=LoadLibrary("hardwareid.dll");if(DllInst){GetIDESerialNumber=(char*(__st

c++ - DLL注册返回码0x80029c4a

我是COM编程的新手,我有一个可以编译的DLL,但在我尝试运行它时不会注册。我在这里遵循了本教程http://msdn.microsoft.com/en-US/library/2wad1c0e(v=vs.80)并对其进行修改以生成以下代码。我不太确定我在这里做错了什么。#pragmaonce#defineSTRICT#ifndef_WIN32_WINNT#define_WIN32_WINNT0x0400#endif#define_ATL_ATTRIBUTES#define_ATL_APARTMENT_THREADED#define_ATL_NO_AUTOMATIC_NAMESPACE#