草庐IT

AppInit_DLL

全部标签

c++ - 如何将 C++ 函数导出为引发异常的 dll?

当我尝试将以下函数导出为dll时:extern"C"__declspec(dllexport)voidsome_func(){throwstd::runtime_error("testthrowingexception");}VisualC++2008给出以下警告:1>.\SampleTrainer.cpp(11):warningC4297:'some_func':functionassumednottothrowanexceptionbutdoes1>Thefunctionisextern"C"and/EHcwasspecified我需要extern"C"因为我使用QtQLibrar

C++: Dll 卸载问题

如何确保一个dll不被卸载,而其中的任何对象都存在?问题是,当我使用显式内存管理时,我可以在释放dll之前删除dll对象,但是使用智能指针我无法控制销毁的顺序,这意味着dll可能首先被释放导致崩溃试图释放其他对象之一:FlPtr是一个简单的引用计数类,它根据需要调用AddRef和ReleaseExampleDll*dll=LoadDll(L"bin\\example.dll");IObject*obj=dll->CreateObject();...obj->Release();deletedll;//finebecauseallobjectsalreadydeletedreturn0;

c++ - 正确使用 shared_ptr 消除跨 DLL 边界的释放

我正在阅读“Usingshared_ptrindll-interfaces”。在那篇文章中,phlipsy在他的回答结束时提出了一种方法,可以不跨DLL边界传递特定于实现的对象。基本上,这个想法是从DLL返回一个原始指针,并在带有该原始指针的EXE中初始化shared_ptr。我不认为这是正确的。为了简单起见,让我重新制作它的原型(prototype)。//wrongversion??//DLLObject*createObject(){returnnewObject;}//EXEstd::tr1::shared_ptrp(createObject());..当object被释放时,s

c++ - 验证加载的 DLL 是否具有有效证书的最安全方法是什么?

我有一个二进制“api.dll”,它使用另一个二进制“helper.dll”。我想使用数字签名验证每个DLL的真实性,但我不确定正确的方法。对于上下文,DLL是使用visualstudio2010构建的,并通过依赖项选项卡链接。链接通过stubhelper.lib发生,因此我没有在api.dll代码中显式调用LoadLibrary。部分问题是我不知道helper.dll是从哪里加载的。我最初的想法是:获取当前进程的句柄枚举所有加载的模块找到名为“helper.dll”的文件(如果此信息可通过enummodulesapis),并使用一些东西验证它的签名likethis这是最好的方法吗?其

C++ 可执行文件 - MSVCR100.dll 未找到错误

我已经下载并编译了一个开源C++应用程序,Frhed.当我运行我编译的版本时,它需要MSVCR100和一些其他dll文件(VisualC++可再发行组件的一部分)。但是,当我运行原始预编译的Frhed可执行文件时,它运行时没有安装任何C++可再发行组件包。我是否必须修改任何编译选项才能取消程序与C++可再发行库的链接? 最佳答案 原始程序可能是静态链接,而您正尝试动态链接您的可执行文件,这会导致文件变小,但依赖于MSVCR100.dll中的函数>(MicrosoftC运行时库的v10),如果您进行静态链接,它将包含在可执行文件中。要

c# - C# 程序如何使用任何版本的 C++ dll?

我们正在创建一个用C++编写的dll,提供对某些硬件的访问。我们还有一个使用此dll的C#程序。我们遇到了版本问题。实际上,在运行C#程序时,它绝对希望使用它在编译时使用的确切C++dll版本。IE。如果C#程序是使用C++dll1.2.3.4编译的,则程序将拒绝使用C++dll1.2.3.5运行。我想指示C#程序使用版本为1.2.anything的任何C++dll。我可以在C#项目中的什么地方配置它?此问题已被thatone取代,更多与COM相关。 最佳答案 C++中不存在这种花哨的东西。使用并排list在技术上允许这样做,但您应

c# - Unified DLL 的 Monotouch.Dialog 替代方案

指南的一部分说要删除所有具有Monotouch前缀的引用。这包括Monotouch.Dialog和许多其他的。但它没有说明用什么代替它。我可以用什么来替换此引用,以便我可以使用RadioGroup和GPUImage等其他项目。 最佳答案 MonoTouch.Dialog在统一API中仍然可用,但它是一种特殊情况,因为MonoTouch命名空间前缀尚未删除。换句话说,它仍然叫做MonoTouch.Dialog。 关于c#-UnifiedDLL的Monotouch.Dialog替代方案,我们

ios - 将 iOS 静态库绑定(bind)到 Xamarin.iOS 并使用 dll

我能够为我的Objective-C静态库成功创建dll文件。但是,当我尝试从Xamarin.iOS应用程序引用该dll并进行编译时,它给了我很多错误,例如...ErrorMT5210:Nativelinkingfailed,undefinedsymbol:_AudioFileClose.Pleaseverifythatallthenecessaryframeworkshavebeenreferencedandnativelibrariesareproperlylinkedin.(MT5210)ErrorMT5210:Nativelinkingfailed,undefinedsymbol

ios - Unity 5.1.1错误: dll is not allowed to be included or could not be found

我是Unity的新手,正在使用Unity5.1.1升级我的一个应用程序。它在4.6.2上运行良好,但升级后出现以下错误ArgumentException:TheAssemblyUnityEditorisreferencedbyiGUI('Assets/lib/igui/Runtime/iGUI.dll').Butthedllisnotallowedtobeincludedorcouldnotbefound.UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse(System.StringassemblyPath,System.

Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件

文章目录?Rider软件下载?创建2.1框架的C#类库1️⃣创建类库项目2️⃣配置Unity的引用?添加安装路径下的DLL?添加Library下的DLL?编写你的C#代码?将C#代码生成DLL文件?查看DLL文件的效果?Rider软件下载rider低版本没有相应的组件,我们用的是JetBrainsRiderForUnity2022.2.1版本。购买专栏后免费下载。