草庐IT

DLL_FILE_NAME

全部标签

c++ - COM dll注销问题

我有一个包含许多COMdll的项目,为了满足要求,我必须注销一个COMDll,我通过调用Regsvr32-u选项来注销该dll。这个注销操作似乎删除了一个接口(interface),比如ICommon接口(interface),这使得其他COM对象不可用。此ICommon接口(interface)由所有其他COM组件实现,在未注册的COMDll的注册表脚本中,我没有看到任何删除此ICommon接口(interface)的代码表单注册表,如何删除它。如何为给定的CoClass删除接口(interface)信息,BEGIN_COM_MAP和COM_INTERFACE_ENTRY有什么作用吗

c++ - 为什么 GetFileAttributesW(L"C :") return FILE_ATTRIBUTE_REPARSE_POINT?

通常,GetFileAttributesW(L"C:")返回0x10(FILE_ATTRIBUTE_DIRECTORY),这是合理的。在某些情况下,GetFileAttributesW(L"C:")将返回0x2416(FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_REPARSE_POINT|FILE_ATTRIBUTE_NOT_CONTENT_INDEXED)我想知道是什么让它发生以及如何摆脱它。这个问题使得boost::filesystem::canonical无法工作。你有什么主意吗? 最佳答案

windows - "This file contained a virus and was deleted"在我构建(和代码签名)的可执行文件上

我已经构建了一个Windows可执行文件(使用MSVC++),需要管理员权限才能运行(它索引文件);我什至使用我购买的代码签名证书对其进行了代码签名。它在Win7、Win8上运行良好,但在Windows10上,如果我从浏览器下载文件,那么我会从IE/Edge收到此消息:Thisfilecontainedavirusandwasdeleted并且(非高级用户)用户几乎不可能访问ZIP、解压缩并运行.exe。(找到合适的检疫地点,解除检疫等等都是非常复杂的;而且对于商业产品来说也是不行的)很明显是误报(我没有病毒,用了很多杀毒软件都查过了,还有https://www.virustotal.

windows - 如何检测 Delpi 代码是否在 DLL 中运行?

我正在创建一个主要供非Delphi调用者使用的[Windows]DLL。我想使用一些现有的“库”代码,但如果在DLL中执行,有些部分可能不合适或有问题。有没有办法检测代码是否在DLL中运行? 最佳答案 System.IsLibraryIndicateswhetherthemoduleisasharedlibrary.TheIsLibraryvariableisTrueifthemoduleisadynamiclinklibrary(DLL). 关于windows-如何检测Delpi代码是

c++ - 在系统上的何处安装 SDK DLL,以便需要它们的应用程序可以找到它们

我有一个正在开发的SDK,之前的开发人员刚刚在System32中删除了DLL(显然是严重的违规行为:seehere)假设我将它们移出到\ProgramFiles\\SDK(或其他),我如何确保所有需要这些DLL的应用程序都可以访问它们?需要澄清的是,所有访问这些的应用程序都在编译时对DLL进行早期(静态)绑定(bind),因此我无法将完整路径传递给它们或任何东西。他们需要能够在仅给出DLL文件名的情况下找到它。按照同样的思路,包含特定版本的MSVCR80.dll怎么样?他们都依赖于此,但我需要确保他们获得特定版本(我包括的版本)。有什么想法吗? 最佳答案

c# - .NET EXE 和 DLL 之间的堆栈/堆差异

这个问题困扰了我很久:.NETEXE和DLL文件都有地址空间。我知道他们都有代码空间和全局变量空间。但我想知道DLL是否有自己的堆和堆栈空间。 最佳答案 进程拥有堆。每个线程都拥有自己的堆栈。当EXE调用DLL中的函数时,使用相同的堆栈,因为函数调用在同一线程中。要说明的另一点是进程具有加载EXE和DLL的地址空间。 关于c#-.NETEXE和DLL之间的堆栈/堆差异,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c# - MoveFileWithProgress 抛出 "The system cannot move the file to a different disk drive"– 为什么?

我有:[SuppressUnmanagedCodeSecurity][DllImport("Kernel32.dll",CharSet=CharSet.Auto,SetLastError=true)]staticexternboolMoveFileWithProgress(stringlpExistingFileName,stringlpNewFileName,CopyProgressRoutinelpProgressRoutine,intdwFlags);publicenumMoveFileOptions{MOVEFILE_COPY_ALLOWED=0x2}并调用它:if(!Move

windows - 命令提示符 : Execute Commands from Any Text File (Not Having ".bat" or ".cmd" Extensions)

我找不到任何方法来做,例如:cmd.exe/C"script.txt"换句话说,如果文件包含有效的批处理脚本,我需要命令提示符(尝试)执行具有任何扩展名(不一定是.bat或.cmd)的文件代码。我正在寻找类似于Unixshell的行为:./script.txt虽然在Unix上shebang(#!/bin/sh)负责理解文件实际上是一个脚本,但在Windows上似乎是.bat或.cmd扩展名起着同样的作用,表示命令提示符的批处理脚本文件。是否可以避免这种情况并强制命令提示符解释任何名称的文件?注意:请不要回答:Giveyourfile.bator.cmdextension.这不是问题所在

c++ - DLL 内存管理器混淆

我写了一个应用程序,允许人们贡献插件来扩展功能。这些插件被部署为DLL文件,框架在运行时获取这些文件。每个插件都有一个工厂函数,在应用程序的生命周期中多次调用该函数来创建对象。到目前为止,为了处理这些对象的所有权问题,我对返回的对象使用了一个简单的计数共享指针,以便在删除最后一个引用时销毁它们。但是,这往往会在Windows上触发崩溃,因为在插件DLL中新建对象但稍后(由于对共享指针的deref()调用)在主应用程序中删除的情况并非不可能发生-据我所知,这种malloc/free混合在Windows上是禁忌。我目前的解决方案是让deref()不调用“删除这个;”直接而是一个'relea

c# - .dll 中发生类型为 'System.StackOverflowException' 的未处理异常

我正在用C#开发Windows应用程序。在我的应用程序中,我使用了一个静态类。代码如下:publicstaticclassclsNumber{privatestaticobjectvValue;publicstaticobjectValue{get{returnValue;}set{Value=value;}}publicstaticstringHexValue{get{try{returnMicrosoft.VisualBasic.Conversion.Hex(vValue);}catch{returnConvert.ToString(vValue);}}set{Value=Micr