草庐IT

dll-interface

全部标签

Python 原始套接字到以太网接口(interface) (Windows)

我正在尝试创建一个DHCP服务器,第一步是通过我的以太网端口发送数据包。我正在尝试将数据包发送到我的以太网接口(interface)并弹出错误消息。代码如下。importsocketdefsendeth(src,dst,eth_type,payload,interface="eth0"):"""SendrawEthernetpacketoninterface."""assert(len(src)==len(dst)==6)#48-bitethernetaddressesassert(len(eth_type)==2)#16-bitethernettype#s=socket.socket

windows - 如何自动检测并释放真正发生变化的DLL?

每当我们重新编译一个exe或DLL时,即使源代码相同,它的二进制镜像也会不同,这是由于镜像中的各种时间戳和校验和。但是,我们的质量体系意味着每次发布新的DLL时,都必须再次执行相关的验证测试(通常是手动的,这会花费大量时间。)因此,我们的目标是避免释放尚未实际更改的DLL。即:有一个自动程序(脚本、工具等...)仅根据它们包含的有意义的信息(代码和数据)检测不同的Dll,忽略时间戳和校验和。有什么好的方法可以实现吗? 最佳答案 以版本信息为基础,只有在实际进行更改时才更新版本信息。 关于

windows - 为 COM 接口(interface)启用编码(marshal)处理需要什么?

我有一个没有类型库的32位ATLCOM组件。它有一个类工厂,用于一个实现多个接口(interface)的给定类。当我将它用作进程内服务器时,一切正常-客户端调用CoCreateInstance(),对象被实例化,QueryInterface()检索指向所请求接口(interface)的指针。但是,当我将组件放入COM+时,我无法再实例化该类-CoCreateInstance()现在返回E_NOINTERFACE。我认为问题在于COM+无法执行编码(marshal)处理,因为缺少类型库-它不知道如何执行。我需要生成并注册一个类型库来解决这个问题还是有其他方法?

c - Windows 上带有 DLL 的动态模块

我正在用C编写一个应用程序,它可以在运行时通过模块/共享对象/DLL进行扩展。这些模块可能会使用现有程序的API,但也可能会提供新功能供以后加载的模块使用,因此模块之间存在相互依赖的可能性。我目前在Linux下的做法是让每个模块都定义一个depends()函数,该函数返回它所依赖的其他模块名称的列表。这样,我就可以自行编译和链接每个模块,使用dlopen()和RTLD_LAZY加载模块,首先解决其依赖关系,然后使用RTLD_GLOBAL完全加载它。这工作得很好并且完全符合我的要求。它还允许我用不同版本替换一个模块,而无需重新编译依赖它的所有其他模块。将其移植到Windows时会出现实际

windows - 向外行解释 DLL 依赖关系

这来自previousposting我提出缺少用于软件安装的干净测试机。我在解释DLL依赖项如何工作以及某些机器在安装时可能没有正确的库方面做得很糟糕。问题在于它被视为构建过程中的缺陷。我正在努力教育高层,这不是构建过程本身,而是安装过程应该受到指责。下面引用我老板的话,将分包商的工作与我们的工作联系起来,以便正确看待:I'mnotasoftwareperson.AllIseeisthatwhentheyhandsomethingtousitjustworksbutwhenwehandsomethingtotheclientthere'sallsortsofproblems.There

c++ - 了解调用者来自哪个 DLL

目前,我有一个C++exe项目,动态加载N个DLL。这些DLL将执行对exe项目中的函数的调用。现在,在我的exe项目中,我想知道调用者来自哪些DLL。是否可以使用任何可用的WindowsAPI来做到这一点? 最佳答案 这取决于您的实际目标。如果您认为DLL可能是恶意的(也就是说,如果您希望它们尝试欺骗您),则不能这样做。但是,如果它只是用于调试或日志记录或类似的相对无害的事情,您可以查看堆栈并获取ret指令将用于返回调用者的地址,枚举加载的DLL和测试该地址在其中的哪一个。要获得“返回地址”,您可以使用_ReturnAddress

c++ - 需要 dll 入口点问题/建议

我有一个跨平台的C++代码动态库,主要是nativeC++。然后我从我的主exe使用这个动态库。到目前为止,在使用gcc的OSX上一切都很好。现在我在Windows上,我对应该使用什么方法进入dll感到困惑。我目前没有DllMain函数,因为这在gcc中不是必需的(据我所知)。我的初始测试有效,但检查后发现奇怪的是我的一个类构造函数在dll加载时被调用,所以我认为我需要在Windows上做更多的事情。我也是:添加DllMain函数?仅使用noentry编译器选项是否安全?当我执行上述任一操作时,我开始收到编译器提示“.CRT部分存在,可能存在未处理的静态初始值设定项或终止符”我已经使用

windows - 创建 "fat"/"Universal"Windows DLL 在技术上是否可行?

尽管目前没有可以创建一个的工具,但是否可以将x64和x86符号都放入一个DLL中,并使其在x64和x86上都可以工作?如果存在某种允许WindowsDLL加载程序跳过不兼容符号等的规范/黑客攻击,则可以创建一个...... 最佳答案 不,一个DLL只包含一个头文件,IMAGE_FILE_HEADERintheSDK.其中包含Machine字段,它表示DLL包含什么样的代码。无法指定一种以上的机器类型。 关于windows-创建"fat"/"Universal"WindowsDLL在技术上

python - 使用 Python 从 DLL 中提取程序集版本

我正在尝试使用python从DLL中提取一些版本信息。我读了这个问题:PythonwindowsFileVersionattribute这很有帮助,但我还需要从DLL中获取“程序集版本”。当我右键单击并查看版本选项卡时,它就在那里,但不确定我如何使用python提取它。在这个页面上:http://timgolden.me.uk/python/win32_how_do_i/get_dll_version.html蒂姆·戈登说:Youcanusetheslightlymoremessylanguage-dependentcodeinthedemoswhichcomewithpywin32t

windows - 如何从服务器正确识别 IE10 Metro 和 IE10 Desktop 以便发回 "finger friendly"或 "mouse friendly"接口(interface)?

我读到,由于两者之间的用户代理相同,推荐的方法是使用特征检测。这在某些情况下很好,您可能想要显示Flash视频/电影/应用程序而不是javascript幻灯片,但我的问题是根据用户的输入设备显示正确的界面。我的假设是,如果用户在“Metro”IE10中,他们可能希望使用手指而不是鼠标。既然如此,我想给他们一个带有大点击框的界面。我的问题:有没有办法区分并显示适当的界面?还是我坚持让用户通过我网站上设置cookie的链接手动切换模式? 最佳答案 仍然没有办法从残缺的MetroIE中检测到正常的IE,但你知道你可以在服务器上知道用户是否