草庐IT

AppInit_DLL

全部标签

c++ - 在 visual studio 中构建 DLL 时使用静态库

我正在尝试使用依赖于OpenCV的VisualStudio12社区构建DLL。我想将OpenCV作为.lib文件包含在内,这样我就不必单独分发它,但我需要将我的文件构建为DLL。但我无法将VisualStudio配置为将库导入DLL。如果在我的项目->属性->配置属性->常规->配置类型,我选择“静态库(.lib)”并在:我的项目->属性->配置属性->VC++目录->库目录,我选择OpenCV.lib文件的路径,然后在我的项目->属性->配置属性->链接器->添加依赖项我添加了对每个.lib的引用,它起作用了。但是如果我更改配置类型做“动态库(.dll)”,VisualStudio告

c++ - Electron native 添加 : DLL initialization routine failed

我正在尝试将我的C++库作为native附加组件链接到我的Electron应用程序。我能够运行node-gyprebuild并生成一个成功的.node文件。但是,当我尝试从main.js调用它时,我收到一条错误消息:“一个动态链接库(DLL)初始化例程失败”。我的binding.gyp文件如下所示:{'targets':[{#Usualtargetname/sources,etc.'target_name':'myclass','sources':['myclass.cc','addon.cc'],'libraries':["../libs/api.lib","../libs/core

c++ - 如何通过引用从 MQL4 向 C++ DLL 传递参数

我正在尝试在MQL4中编写一个简单的程序,该程序通过引用将变量传递给C++DLL函数,并在MQL4中打印更新后的变量值。下面给出的是我的代码。动态链接库函数:voidTest(int*X){*X=6;}MQL4代码#import"Test.dll"voidTest(int&);#importvoidOnStart(){intA;Test(A);Alert(A);}但是我没有从变量A的C++函数中得到任何值。有人可以帮我解决我在这里做错的问题吗?提前致谢 最佳答案 让我们从DLL端开始:intTestMoreApproachesAtO

c++ - Windows DLL实际上是如何共享的?

通过检查我的Windows机器中的几个DLL(例如KERNEL32.DLL),我注意到它们的任何部分,甚至只读数据部分都没有设置IMAGE_SCN_MEM_SHARED标志。DLL是从.dll文件映射的,因此只有当您读取文件的一页时,它才会被复制到物理内存,但是,如果进程A和进程B都访问了kernel32.dll的同一页,那么该页面将在物理内存中存在两次。我要求最后声明的真实性。如果共享的.text或.rodata段,它们只会被复制到物理内存一次,即使启用了ASLR,因为ASLR所做的是在模块首次加载时随机化模块的基址(应用相应的重定位))但在系统重启之前加载此模块的下一个进程将在同一

c++ - Espeak SAPI/dll 在 Windows 上的使用?

问题:我正在尝试使用espeak文本转语音引擎。所以我让它在linux上运行得很好(下面的代码)。现在我也想将这个基本程序移植到Windows,但这几乎是不可能的...部分问题是Windowsdll只允许AUDIO_OUTPUT_SYNCHRONOUS,这意味着它需要一个回调,但我无法弄清楚如何从回调中播放音频...首先它崩溃了,然后我意识到,我需要一个回调函数,现在我在回调函数中获取了数据,但我不知道如何播放它...因为它既不是wav文件,也不像在Linux上那样自动播放。sourceforge网站没什么用,因为它基本上说使用SAPI版本,但是没有关于如何使用sapiespeakdl

c++ - 场景 : Global variables in DLL which is used by Multi-threaded Application

几个月前,我遇到了一个人(在orkut上)问的这个有趣的场景。虽然,我已经针对这个问题提出了一个“不可移植”的解决方案(已经用小代码对其进行了测试),但仍然想知道你们有什么要说的和建议的。假设,我创建了一个DLL,导出一些功能,用C++编写,用于单线程客户端。这个DLL声明了很多全局变量,一些可能是const变量(只读),其他的是可修改的。无论如何,后来情况发生了变化,现在我希望同一个DLL与多线程应用程序一起工作(无需修改DLL);这意味着,多个线程从DLL访问函数和全局变量,并修改它们……等等。所有这些都可能导致全局变量持有不一致的值。所以问题是,我们能否在客户端代码中做一些事情来

c# - 将字符串数组从 C# 传递到 C++ dll,然后再返回

我查看了googleverse和stackoverflow并看到了几个与此类似的问题,但我找到的答案没有一个对我有用。我是一名新成员,所以我不能对别人的问题的答案发表评论以要求澄清,所以我不得不求助于自己提问。好的,所以我正在尝试将字符串数组从C#应用程序传递到C++dll,然后在另一个C#应用程序中获取该信息。我相信我正在正确地传递给C++,但我无法从dll中获取正确的字符串。我像这样传递给C++:[DllImport("KinectPlugins.dll",CallingConvention=CallingConvention.Cdecl)]privatestaticexternv

C++ 从子目录加载 DLL?

我是C++的“隐藏/暗处”的新手,我想知道如何从不同的目录或当前可执行文件运行的目录中的子目录加载.dll文件例如:./MyAppDirectory/MyApp.exe/SomeDLL.dll/AnotherDLL.dll/SubDirectory/SomeDLL2.dll/AnotherDLL2.dll/YetAnotherDLL.dll/...所以“MyApp.exe”自动从它的根文件夹“MyAppDirectory”加载“SomeDLL.dll”和“AnotherDLL.dll”,但是我也希望能够加载“SomeDLL2.dll”,“AnotherDLL2.dll”,“MyAppD

c++ - 需要从DLL导出纯基类?

我有两个DLL:a.dll和b.dll,每个DLL都有一个类AClass和BClass。我想让AClass和BClass继承并实现相同的接口(interface)AbsBase,这是一个纯抽象类。在每个类中,我为__declspec(dllimport)和__declspect(dllexport)设置了#defines。当我尝试编译时,我得到了这个:warningC4275:nondll-interfaceclass'AClass'usedasbasefordll-interfaceclass'AbsBase'这基本上是要我将AbsBase声明为__declspec(dllexpor

c# - SharePoint 无法在 Windows 2008 上加载 C++ DLL

我有一个SharePointDLL可以执行一些许可操作,并且作为代码的一部分,它使用外部C++DLL来获取硬盘的序列号。当我在WindowsServer2003上运行此应用程序时它工作正常,但在WindowsServer2008上整个站点(加载时加载)崩溃并不断重置。这不是WindowsServer2008R2,在64位或32位中是相同的。如果我在DLL执行之前放置一个Debugger.Break,那么我会看到代码到达中断点,然后再也不会回到DLL中。我确实从函数中收到了一些调试断言警告,同样仅在WindowsServer2008中,但我不确定这是否相关。我创建了一个运行C#DLL的控