草庐IT

c# - 如何在 dot net 中使用免注册 COM dll

在我的一个项目中,我有一个使用C++DLL的C#应用程序。目前在客户端PC上,我们正在注册表中的COM组件中注册C++DLLS,以便我们在C#中使用它们。我在NET上了解到,Microsoft提供了一个RegFree解决方案,链接为http://msdn.microsoft.com/en-us/library/ms973913.aspx但是看完之后我并没有得到太多线索,因为我的应用程序架构如下所示不同我有2个C++dll让我们说CPForms.dll和Rules.dll。Rule.dll包含在CPForms.dll中我有1个C#dll假设使用CPForms.DLL的ConsumeFor

c++ - 如何将 Qt 资源嵌入到 .dll 文件中?

我的项目中有数百个HTML文件,我不想将所有这些HTML文件都编译成一个.exe。因此,我想将我的HTML文件构建到.dll文件中。如何将这样的Qt资源嵌入到.dll文件或其他类型的编译库中? 最佳答案 您打算只为html文件使用dll还是它也包含代码?如果dll仅用于html文件,请创建externalexternalresourcefile相反。将qrc文件编译为外部资源文件:rcc-binarymyresource.qrc-omyresource.rcc在你的exe中注册资源文件:QResource::registerReso

c++ - 依赖遍历器中缺少 Dll

我有一个dll,我正在使用平台visualstudio2003将其打开到依赖项walker中,操作系统是2000。我的那个dll找到所有依赖项。但是当我要在另一个装有OS-windows7和visualstudio2010的系统中打开那个dll时,我发现缺少dll错误。GDIPLUS.DLL,GPSVC.DLL,IESHIMS.DLL.上面列出的3个dll丢失了。当我下载这些dll并将它们放入我的dll所在的相同位置时,我发现下面列出了丢失的dll列表。API-MS-WIN-CORE-COM-L1-1-1.DLL,API-MS-WIN-CORE-DEBUG-L1-1-1.DLL,API

c++ - 在 Win32 DLL 项目中是否有 'AssemblyInfo.cs' 的等价物?

我已经看过thistopic,但我需要翻转答案。如何在Win32DLL中设置程序集信息属性*? 最佳答案 好吧,我再看一眼就明白了。右键单击VisualStudio项目,然后选择添加->资源..选择“版本”,然后点击“新建...”VisualStudio将为您生成文件,您可以简单地编辑信息。 关于c++-在Win32DLL项目中是否有'AssemblyInfo.cs'的等价物?,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - 从 C++ DLL 调用 Delphi 中的回调函数

我有一个我编写的C++DLL,它有一个公开的函数,它接受一个函数指针(回调函数)作为参数。#defineDllExportextern"C"__declspec(dllexport)DllExportboolRegisterCallbackGetProperty(bool(*GetProperty)(UINTobject_type,UINTobject_instnace,UINTproperty_identifer,UINTdevice_identifier,float*value)){//Dosomething.}我希望能够从Delphi应用程序中调用这个公开的C++DLL函数,并注

c# - p/从在 x64 机器上运行的 C# 程序调用 32 位 dll

我有一个C#程序,我在x64计算机上使用所有默认设置进行编译。我想p/调用一个我知道是32位(非托管)C++DLL的DLL。当我的C#程序在32位计算机而非64位计算机上运行时,我可以让它工作。如何在调用32位dll的DllImport调用中指定?我现在拥有的示例:[DllImport("test32bitdll.dll",SetLastError=true)]publicstaticexternvoidMyFunc();我没有test32bitdll.dll文件的源代码。 最佳答案 在64位进程中运行32位非托管代码是不可能的。或

c++ - 从 C 中用 C++ 开发的 DLL 调用函数

dll中的函数原型(prototype)如下voidFoo(intarg1,int&arg2);问题是,如何在C中声明函数原型(prototype)?声明是否合法?voidFoo(int,int*); 最佳答案 Isthedeclarationlegal?是的,但它没有声明相同的功能。如果您需要CAPI,则不能使用引用。坚持指针,并确保该函数具有C链接:extern"C"voidFoo(int,int*){//Functionbody}如果您无法修改DLL代码,则需要为其编写一个C++包装器,以公开适当的CAPI。

es.dll文件丢失导致程序无法运行问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个es.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现es.dll丢失要怎么解决?一、手动从网站下载单个dll文件1、从下面列表下载es.dll文件32/64位文件:es.dll2、将下载的文件放入到你要运行的软件或者游戏的安装所在文件

.net - 从非托管 C++ 动态加载混合模式 C++/CLI .dll(和依赖项)

我有一个托管C++程序集,我正在通过标准LoadLibrary()调用在非托管C++应用程序中动态加载。托管C++程序集依赖于多个托管(C#)程序集。一切正常,直到我将所有托管程序集移动到非托管应用程序的子目录中。举例说明:托管C++.dll(MyCoolDll.dll)依赖于DotNetDll1.dll依赖于DotNetDll2.dll非托管C++应用(MyCoolApp.exe)通过LoadLibrary("MyCoolDll.dll")加载MyCoolDll.dll这工作正常,直到我将MyCoolDll.dll、DotNetDll1.dll和DotNetDll2.dll移动到/s

c# - 如果一个应用程序中的多个线程调用单个 DLL 会发生什么

我想知道当一个应用程序中的三个线程(几乎)同时从DLL调用一个静态方法时会发生什么。是否为每个线程加载了3个DLL实例,或者其他线程是否仅在第一个线程使用DLL静态方法完成后才能访问DLL(即,每个线程在轮到它时都可以访问DLL? 最佳答案 Arethere3instancesoftheDLLloaded,oneforeachthread?没有。DLL通常每个进程加载一次。(这里有一些微妙的问题;如果您使用Load和LoadFrom,同一个程序集可能会被加载两次。但这种情况很少见,并且没有任何影响与线程有关。)Dothesecond