草庐IT

compile-ms-native-dll

全部标签

c++ - 以编程方式获取用于在非开发人员 Windows 环境中构建进程或库的 DLL 列表

我什至不确定这是否适用于Windows;我还没有看到一个人要求这么普遍的东西并找到解决方案。这可能是可能的,但可能没有用于处理它的API。我有一个自动化测试模块,我正在为Windows工作,它使用一个模块以通用方式处理检测到的EXE,除非它检测到二进制文件来自特定的测试框架。到目前为止,我只能通过查询帮助和处理响应/字符串解析来做到这一点。如果我触发某人在框架之外编写的长时间测试,该测试接受命令行参数寻求帮助,但实际上并不处理这些命令行参数而只是自动运行,这可能会导致问题。因此,有时我会卡在等待测试完成的时候,而不是进行闪电般的快速查询。这就是我试图通过这个花哨的新模块避免的。:)这个

windows - GUI 元素随 MS Outlook 11.0 对象库 + Outlook 2016 Ver 1702 移动

我有一个带有自己的IDE和Windows客户端的专有软件。在IDE中,我使用MicrosoftOutlook11.0ObjectLibrary来发送每封邮件的附件。但自Outlook2016Version1702以来,GUI元素To、Cc和subject发生了变化。Sendbutton也不可访问。在Version1609中我没有遇到这个问题。有人知道这个问题以及如何解决吗?是否有更新版本的库?或者Outlook中是否有解决问题的设置?提前致谢。 最佳答案 我也遇到了这个问题,可以确认它从Office2016更新1701开始出现。它似

windows - 某些 Windows DLL 显然如何同时支持 32 位和 64 位?

我似乎能够访问C:\WINDOWS\system32\opengl32.dll中的函数(同样C:\WINDOWS\system32\glu32.dll)来自32位或64位应用程序(为了它的值(value),我通过ctypes模块从单独的32位和64位Python2.7解释器执行此操作)。有了glut32.dll,事情就不一样了。它只是作为GraphViz的32位安装的一部分出现在我的Path上。在32位Python中,我可以动态链接到它,但在64位Python中,我得到[Error193]%1isnotavalidWin32application。现在,这个错误并不让我吃惊,因为我一直

windows - 调整示例 DLL 代码时获取无效图像

我使用示例代码从FASM示例目录创建一个简单的DLL,并根据我的需要对其进行调整。但是,当我进行一些(从我的POV来看是无辜的)更改时,生成的二进制文件被损坏-运行使用此库的exe会产生错误代码0xC000007B又名INVALID_IMAGE_FORMAT。动态链接库代码:;DLLcreationexampleformatPEGUI4.0DLLentryDllEntryPointinclude'win32a.inc'section'.text'codereadableexecutableprocDllEntryPointhinstDLL,fdwReason,lpvReservedmo

windows - NSIS 用 regsvr32 注册 DLL

我正在尝试在nsis安装程序中使用regsvr32注册DLL(目前没有静默):Exec'"$SYSDIR\regsvr32.exe""$SYSDIR\mp4mux.dll"'Exec'"$SYSDIR_32bit\regsvr32.exe""$SYSDIR_32bit\mp4mux.dll"'它显示DLL已注册的弹出窗口(32位和64位),并且在安装日志中它显示下一行:Execute:"C:\WINDOWS\system32\regsvr32.exe""C:\WINDOWS\system32\mp4mux.dll"//for32-bitissimilar但是,当我尝试使用它时,它不起作

.net - MS Access 驱动程序问题

我创建了一个使用access2010数据库(ODBC)的Windows窗体应用程序。在我创建安装程序包并发布应用程序后,用户无法从Access数据库中检索应用程序中的数据。用户系统中未安装MSoffice。有没有一种方法可以在应用程序中使用MSAccess数据库而不需要用户拥有MSOffice? 最佳答案 您需要安装MSAccessRuntime在客户端电脑上。TheMicrosoftAccess2010RuntimeenablesyoutodistributeAccess2010applicationstouserswhodono

c# - .NET 无法在同一目录中找到非托管 DLL

我有一个C++DLL库(我们称它为unmanaged.dll),它围绕着一个托管.NET库(我们称它为managed.dll)。managed.dll使用unmanaged.lib导入/链接unmanaged.dll。我有另一个使用managed.dll的ASP.NETWebAPI项目(我们称该项目为webapi.dll)。现在,每当我构建Web项目时,在输出目录中我都会得到webapi.dll和managed.dll。然后,我手动将unmanaged.dll复制到同一个输出文件夹中,以便(大概).NET可以找到它并加载它。但是,当我尝试运行webapi.dll时,它失败并显示无法加载

c - 为什么 Windows 要求导入 DLL 数据?

在Windows上,可以从DLL加载数据,但需要通过导入地址表中的指针进行间接访问。因此,编译器必须知道正在访问的对象是否是使用__declspec(dllimport)从DLL导入的。类型说明符。这很不幸,因为这意味着设计用作静态库或动态库的Windows库的header需要知道程序链接到哪个版本的库。此要求不适用于函数,这些函数是为DLL透明地模拟的,stub函数调用实际函数,其地址存储在导入地址表中。在Linux上,动态链接器(ld.so)将所有链接数据对象的值从共享对象复制到每个进程的私有(private)映射区域。这不需要间接寻址,因为私有(private)映射区域的地址是模

c - Detecting if stdout is a console with MS Visual compilation, mingw64提供的console

我维护一个生成二进制数据的命令行实用程序。请求时,数据可以重定向到stdout。这在stdout被重定向到管道或文件时有效,但当stdout是一个控制台时,情况就不太一样了,因为它会垃圾控制台。为了保护用户免受此类错误,程序必须检测stdout是否是控制台,并在是时退出。现在,这并不是什么新鲜事,快速浏览一下Internet就会发现多种解决方案。主要缺点是没有“通用”方法,VisualStudio需要自己的风格。我用于Visual的控制台检测器有一个缺陷:它没有检测到stdout是一个控制台当控制台由mingw提供时,我认为这意味着它是mintty。这里是相关的代码部分:#ifdefi

c - 如何在 C 中的 DLL 中执行线程

我创建了一个运行3个工作线程的DLL,主线程处于循环中等待线程完成。线程已创建,但未执行线程。我尝试在使用CreateThread()创建的函数中设置MessageBox函数,但该框没有出现。我也尝试过调试,CreateThread()的返回值有效,因此线程被创建。BOOLWINAPIDllMain(){main();return1;}intmain(){HANDLEh1,h2,h3;h1=CreateThread(first)...h2=CreateThread(second)...h3=CreateThread(third)...WaitForSingleObject(h3,INF