草庐IT

MY_DLL_N

全部标签

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

c++ - 什么可能导致时间函数和 DLL 加载之间的死锁

TL;DR:在这种情况下,我对DLL加载程序锁定死锁的猜测是否正确,我如何确定?我在一些涉及CRT时间函数和NationalInstrumentsDAQmx驱动程序(9.3.5f2)的代码中出现间歇性死锁(50%)。我正在使用MSVC2008Express创建一个x86可执行文件(典型的“发布”设置,如果需要可以提供)并且我在Win7Prox64上运行。我的代码在主线程上使用时间函数并启动一个新线程来处理更新模拟输出电压(在USB-6009上):#include#include#include#include#includeHANDLEg_TerminateEvent;extern"C

c++ - 将 C++ (DLL) 项目转换为 COM DLL 项目

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。您好,我有一个纯C++项目(DLL),我想将其转换为COM项目,例如header中定义的所有公共(public)接口(interface)现在将公开为COM接口(interface)(IDL等...)。最终产品应该是COMDll。我该如何开始?我如何定义任何高级指南?好文章?

c++ - 链接到系统 C 库 msvcrt.dll

在Windows中,有一个默认的C库msvcrt.dll。是否可以编写仅使用msvcrt.dll函数的简单C程序?这样就无需安装最新的VC运行时。我认为一种可能的方法是显式指定/NODEFAULTLIB,并使用dll导入过程导入msvcrt.dll函数。有人知道吗? 最佳答案 您可以使用MinGW-w64GCC,它链接到msvcrt.dll正是出于您所说的原因。您可以找到下载here.如果您不想重新分发任何DLL,您可以使用-static-libgcc-static-libstdc++链接您的程序。也就是说,您只需将msvcr*.d

java - rundll32 url.dll,FileProtocolHandler

我正在使用rundll32url.dll,FileProtocolHandlermy_file.dotx在Windows下打开文件。它适用于.docx文档,但当我尝试使用.dotx文档(模板文档)时,它会根据模板创建一个新的.docx。就像Windows资源管理器中的正常行为一样:当您双击.dotx模板文件时,它会基于它创建一个新的.docx文件。如果您想打开真正的.dotx文件,您必须右键单击它并选择“打开”而不是“新建”。问题是:如何对rundll32做同样的事情?命令中是否有强制打开底层模板而不是创建新文档的选项?编辑:我需要一种不需要C函数的方法,只需在命令行中使用纯文本(我正

wpf - 故障模块名称 : PresentationFramework. ni.dll

我编写的一个应用程序崩溃了,在事件查看器中我发现了以下内容:Faultingmodulename:PresentationFramework.ni.dll,version:4.0.30319.233,timestamp:0x4d930fa2Exceptioncode:0xc00000fd几个问题:PresentationFramework.ni.dll是什么?我怎么知道这个异常是由我的应用程序中的错误还是无关的东西引起的?谢谢 最佳答案 PresentationFramework.ni.dll是PresentationFramewo

c++ - 寻找 "The specified module could not be found"的 dll

这个问题在这里已经有了答案:UnabletoloadDLL(ModulecouldnotbefoundHRESULT:0x8007007E)(20个答案)关闭1年前。我有一个调用C++dll的32位.Net应用程序winform。我们将该应用程序打包到一个安装程序中,它在至少20台左右的机器上安装和运行良好。该应用程序最初是在Win7x64机器(我的)上开发并运行良好的。但是,当我在老板桌面(Win7x64)上运行它时,应用程序将无法启动。哦是的...当我尝试启动应用程序时,我得到一个JIT对话框System.IO.FileNotFoundException:找不到指定的模块。(HRE

windows - DLL 重定向 - 在 XP 中工作,而不是在 Windows 7 中工作

在WindowsXP上,我为指定的应用程序重定向user32.dll,但在Windows7上使用相同的设置,user32.dll没有被重定向。设置是这样的-一个目录包含:app.exeapp.exe.manifestuser32.dllapp.exe.manifest包含:在WindowsXP上,app.exe从应用程序文件夹加载user32.dll。在Windows7上,app.exe从system32文件夹加载user32.dll。如何让app.exe从Windows7的应用程序文件夹加载user32.dll?MSDNdocs不要提及平台之间在程序集工作方式上的任何差异,但必须存在