草庐IT

DLL_EXPORT

全部标签

c++ - Visual C++ 2010 : deterministic build? 如何区分 exe/dll 文件?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicates:DeterministicbuildsunderWindowscomparingproductsofbuildsinreleaseVisualStudio2010C++构建是否具有确定性?也就是说,在给定等效源代码输入和相同编译/链接设置的情况下,它是否始终会生成相同的二进制指令?我知道可能有各种日期戳和其他编译系统相关的字段被写入二进制EXE或DLL文件。所以我的问题的第二部分是:当diff此类文件时,如何忽略这些“可变”元素?我正在尝试创建一个工具来比较来自不同构建迭代的二进制工件,并告诉我它们在功能上

c++ - 我可以将 DLL 注入(inject) JVM 并获取 JNIEnv 吗?

我希望能够将.dll注入(inject)到正在运行的JVM进程中。我想知道的是,完成此操作后,我能否以某种方式获取JNIEnv实例,从而允许我访问正在运行的JVM中的对象?我正在努力实现的是与Java反射类似的东西,但在native级别上。 最佳答案 AttachAPI就是你要从进程外注入(inject)一个DLL。请注意,它需要合适的操作系统权限。然后使用JNI调用API和标准JNIAPI从内部执行您需要的任何操作。AttachAPIfromOracle和AttachAPIfromIBM

c++ - cout 和 printf 适用于内置调试未发布的 Dll

我构建了一个DLL,它通常通过SetWindowHookEx注入(inject)到控制台应用程序中。DLL将信息输出到控制台很重要,我一直在使用std::cout进行操作。DLL接近完成,直到我尝试在Release模式下构建DLL,这使得所有cout行都变得无用。我已经通过执行导致程序在dllmain函数中崩溃的简单空取消引用来验证DLL正在注入(inject)和执行。与std::printf相同。voidonAttach(){//WARNINGTHISISADEMONSTRATIONstd::cout我真的不知道如何解决这个问题。发布链接器是否以某种方式排除了依赖项?我正在使用MSV

c++ - Cython 代码可以编译成 dll 以便 C++ 应用程序可以调用它吗?

我有一个C++程序,它有一种插件结构:当程序启动时,它会在插件文件夹中寻找具有某些导出函数签名的dll,例如:voidInitPlugin(FuncTable*funcTable);然后程序会调用dll中的函数进行初始化,并将函数指针传递给dll。从那时起,dll就可以与程序对话了。我知道Cython允许您在Python中调用C函数,但我不确定我是否可以编写Cython代码并将其编译为dll,以便我的C++程序可以使用它进行初始化。示例代码会很棒。 最佳答案 在dll中使用cython-module与usingacython-mod

c++ - g++ : fatal error: -fuse-linker-plugin, 但找不到 liblto_plugin-0.dll

我是mingw的初学者。请专家回答我的问题。我做了以下过程:我已经为C++编译器安装了mingw-get-setup.exe我还为C++IDE使用了Eclipse-cpp-europa-winter-win32我还使用了以下uer环境变量:""\bin;""\MSYS\1.0\local\bin;""\MSYS\1.0\bin但是当我运行我的程序时出现“没有二进制文件启动失败”错误。我在运行前已经构建了程序。我还在控制台中收到以下错误:构建项目测试的配置调试**InternalBuilder用于构建****g++-otest.exe测试.og++:fatalerror:-fuse-li

c# - 从托管包装器重定向 native DLL stdout/stderr

我有一个C#控制台应用程序,它可以P/Invoke到nativeC++dll。dll创建一些非常健谈的线程,并将它们的日志写入标准输出。问题是我的用户交互需要控制台。如何将dllstdout/stderr重定向到null? 最佳答案 我认为,为了完成这项工作,您需要构建一个nativeDLL,该DLL链接到与麻烦的DLL相同的C++运行时。然后您需要使用freopen来重定向标准输出。我的代码来源是这个答案:freopen:revertingbacktooriginalstreamC++代码如下所示:#include__declsp

c++ - opencv拼接免费dll

我的项目中有一个函数可以进行拼接,该函数运行良好,非常简单:Matoutput(m_Img,true),pano;//apanaoramicimagebooltry_use_gpu=true;StitcheriSticher=Stitcher::createDefault(try_use_gpu);//SetFeaturefindertobeORBiSticher.setFeaturesFinder(newdetail::OrbFeaturesFinder());try{Stitcher::Statusstatus=iSticher.stitch(Imgs,pano);if(statu

c++ - 如何使用 QtCreator 调试 DLL 项目?

我已经使用QtCreatorIDE编写了一个用mingw编译的非QtCDLL。当我将DLL注入(inject)进程时,DLL导致该进程在特定代码行崩溃。通过使用OutputDebugString,我发现这一行是罪魁祸首。我知道如何修复该行,并且当该行被修改时DLL可以工作。但是,为了学习如何使用调试器,我保留了未修改的断行。我如何使用QtCreator调试器找到导致问题的同一行?当QtCreator设置为Debug模式编译时,按F5会出现如下对话框,因为没有EXE: 最佳答案 解决方案是在注入(inject)DLL之前运行附加到可执

c# - 在互操作(C++ 管理)项目中使用 C# dll(使用 Microsoft.bcl 构建)

我们在.net4.0中有一个C#DLL,但使用Microsoft.bcl、Microsoft.bcl.async、Microsoft.bcl.build、M​​icrosoft.net.http构建。这些库来自nuget。我们有理由不迁移到.net4.5,但想使用异步,等待这些bcl库。在C#项目中一切正常,但我们无法在C++互操作项目中添加此DLL,我们收到此错误:当我们尝试将此引用添加到项目时出现此错误。即使clrinterop项目也在.net4.0中,并且我们添加的DLL也在.net4.0中,但我们最终会收到此错误。有办法解决这个问题吗?Errorintextformat:---

c++ - 如何在 Visual Studio 中的 DLL 上设置断点?

我正在研究一个DLL(用C++编写)的源代码,它是另一个程序的插件。没有文档,我也没有主程序的源代码。我试图找出主程序调用DLL的位置和时间。有超过100个函数被标记为DllExport,因此仅此一项并没有多大帮助。为此,如果我每次执行到我的DLL中的代码时都可以触发一个断点,那就太好了。那或将其记录在某处。这可能吗?如何实现? 最佳答案 呸,这是你的要求。但老实说,这可能是非常有用的东西,即使对于其他场景也是如此。我认为您可以实现此目的的最简单方法是使用WinDbg并在那里设置断点。使用WinDbg你可以做这样的事情(假设你的图像