草庐IT

DLL_EXPORT

全部标签

c++ - 什么是 "api-ms-win-*-*-lx-x-x.dll"伞形库?

我经常遇到长文件名的DLL,就这样。例如只有两个:"api-ms-win-appmodel-runtime-l1-1-1.dll"或"api-ms-win-appmodel-identity-l1-2-0.dll"。显然微软称它们为“umbrellalibraries”。我最初的理解是它们只是具有新文件名的新D​​LL,但后来我尝试搜索这些文件。好吧,我找不到它们作为磁盘上的物理文件...所以我很好奇,它们是磁盘上不存在的某种虚拟DLL文件名吗?WCHARbuff[MAX_PATH];buff[0]=0;GetSystemDirectory(buff,MAX_PATH);StringC

c# - C++ dll 返回的字符串在 C# 调用程序中已损坏,为什么?

我有一个调用C++DLL的C#应用。在C#中,我有如下代码:[DllImport(@"111.dll",CharSet=CharSet.Unicode)]publicexternstaticStringFunc1(Stringarg);......Stringarg="testtext";Stringretstring=Func1(arg);在CPP中,我定义的函数如下:extern"C"{__declspec(dllexport)LPWSTRFunc1(LPWSTRarg){....LPWSTRret1=L"1?2?3?4?5";LPWSTRret2=SomeActualFuncti

c++ - MSVCP110D.dll 和 Visual Studio 2013

我正在尝试运行我在VisualStudio2013中编译的程序。但是,我收到错误Theprogramcan'tstartbecauseMSVCP110D.dllismissingfromyourcomputer.Tryreinstallingtheprogramtofixthisproblem.这不是一个非常有用的错误。然而,在一些谷歌搜索之后,我发现它(显然)试图动态加载一个标准的c++库,为了解决这个问题,我需要指定/MT选项而不是/MD选项。这给我留下了一些问题:它到底在做什么?/MD与/MT相比有什么好处?我的意思是,它是默认选项肯定是有原因的...我将如何着手寻找.dll并让

c++ - 如何在 Delphi 中使用由 dll 导出的 C++ 类

有没有办法在Win32的Delphi中使用由win32dll导出的C++类?是否有其他方法来实现类似的东西(COM、.NET等)? 最佳答案 你不能导入一个类。您只能导入函数。RudyVelthuishaswrittenatlengthonthetopic.尽管您不能直接使用导出的C++类,但他描述了一些实现相同效果的技术:“扁平化”对象,因此在调用方不再有对象,只有一个指针连同其他参数一起传递给DLL,用于包装对象方法的一系列函数。编写包装器非常简单,尽管它可能很乏味。使用纯虚类。WindowsC++编译器和Delphi通常具有相

c# - C# AnyCPU 项目能否包含平台特定的 dll

我们的产品基于大量C++项目,但我们现在将C#项目用于前端。我们现在也在做64位版本。我们的计划是将所有C#dll构建为AnyCPU。C#项目将引用公共(public)bin文件夹中的C++dll。在构建x64时,bin文件夹将包含我们的c++dll的x64版本,而在构建Win32时,bin文件夹将包含我们的C++dll的32位版本。因此,C#项目将构建AnyCPU,但包括x64或Win32c++dll。我的问题是,这行得通吗?在运行时,一切都应该是全部32或全部64,具体取决于我们正在运行的exe,但是编译时可以处理针对包含平台特定dll的AnyCPU的项目吗?还是我们必须制作所有C

c++ - 从 C++ 调用 dll 函数

我在一个dll中有一个函数,我想从我的C++应用程序中调用它。该dll也是用C++制作的,并且有一个def文件,它显示了dll中存在的函数。我正在使用visualstudio2010,我通过在链接器“附加库目录”中添加dll的目录,然后在链接器的“输入”中添加DLLname.lib,将其配置为使用dll文件。现在dll中的所有命名空间都可用,但是我需要的函数不可用,因为它们不在任何命名空间下。我该如何访问这些功能?这些函数在dll中声明为这样#include"stdafx.h"#include__declspec(dllexport)intsomefunction(){......re

c++ - 如何将 DLL 反转为 C++ 代码?

我知道将dll逆向为C++代码是不可能的,所以我想从中收集尽可能多的细节。这不是我的dll,所以我当然没有源代码。我应该使用哪个程序? 最佳答案 好吧,如果你技术娴熟,你可以反汇编DLL并了解它的所有功能。这会花费大量时间,但如果您这样做了,您可以手动将其还原回源。否则,您可以先使用DependencyWalker之类的工具来获取它所依赖的DLL和函数,以及它导出的函数。从那里您可以找到您感兴趣的函数,并使用像IDA这样的反汇编程序来查看它们的作用。 关于c++-如何将DLL反转为C++

.NET CORE,N层应用程序,如果服务层对Microsoft.extensions.options.dll具有依赖性

直接问题是:microsoft.extensions.options.ioptions是否仅在伞应用程序的上下文(在这种情况下为Web应用程序)或类库中使用?例子:在N层ASP.NET核心应用中,我们拥有的服务层取决于来自来自的某些设置appsettings.json文件。我们首先从startup.cs中的这些线开始的东西:services.Configure(options=>{options.OptionProperty1=Configuration["OptionXSection:OptionXProperty"];});然后在服务构造函数中:ServiceConstructor(IOp

.net - 如何跨 VS 版本制作一致的 dll 二进制文件?

例如,winsock库适用于所有版本的visualstudio。但是我很难在所有版本中提供一致的二进制文件。用VS2005编译的dll链接到2008年写的应用程序就不能用了。我把2k5和2k8都升级到SP1了,结果没有太大变化。它可以正常工作。但是,当他们将其包含在C#应用程序中时,C#应用程序会出现访问冲突错误,但对于经典的C++应用程序,它可以正常工作。当我提供dll时,有没有我应该知道的策略? 最佳答案 首先,除了普通的旧数据外,不要跨DLL边界传递任何数据。即结构很好。类不是。其次,确保所有权没有被转移——即任何通过dll边

c++ - 来自一个 dll 的函数调用另一个 dll 的同名函数

我有一个特殊的问题。我有两个DLL,我们称它们为DLL-A和DLL-B。DLL-A有一个名为f1()的函数,DLL-B也有一个同名函数f1()。现在在DLL-A中,f1()像这样调用DLL-B的f1()。DLL-A:f1(){f1();//thisisDLL-Bfunction,buthavingthesamename}现在我的问题是,它会是从DLL-A递归调用f1()吗? 最佳答案 如您所料,函数体内的f1()调用自身导致无限递归。一些可能的解决方案:将导入的DLL函数放在一个单独的命名空间中,这样你就可以区分它的名字。更改这些函