草庐IT

DLL_EXPORT

全部标签

c - 如何使用 .exe 文件传送 .dll 文件

我有一个依赖于某些.dll文件的应用程序。我知道如果我只是将它们放在与.exe文件相同的文件夹中,它会起作用,但我不想在我的.exe文件中留下30个.dll文件。有什么方法可以将它们与我的.exe文件放在一个文件夹中?或者更好的是,是否可以编译它们并将它们与.exe文件链接以获得一个独立文件?不,我没有这些动态库的静态版本。(p.s.应用程序是用c编写的,用gcc编译的,mingwwin64,.dll来自gtk3libs)感谢您阅读我的问题 最佳答案 您有多种选择。A)获取库文件,Windows上的.lib并与这些库静态链接。B)这

c++ - lua5.3 dll 文件中缺少名称

在VisualStudio(2017)下,我正在尝试使用Lua5.3编写C++程序脚本,但链接器未找到我的C++源文件中引用的三个函数名称:unresolvedexternalsymbol_lua_closeunresolvedexternalsymbol_lua_createtableunresolvedexternalsymbol_luaL_newstate我从Luawebsite中获取了C++源代码.我下载了没有导入库的Lua5.3动态库,所以我使用MSVC工具创建了导入库,如下所示:dumpbin/exportsE:\Documents\Programmation\Lua5.3

c++ - Windows:更改 Exe 的 DLL 搜索顺序

我在应用程序目录中有一个C++Exe,其中包含它使用的DLL。现在,出于某些测试目的,我需要修改现有的DLL并使用它来代替原始DLL。但是为了不修改现有的安装,我无法备份现有的DLL并将其替换为修改后的DLL或将现有的DLL移动到别处。我也无法更改Exe。2个DLL需要并排存在。唯一的变化应该是Exe应该透明地加载位于其他文件夹中的修改后的DLL,而不是与Exe位于同一文件夹中的现有DLL。有什么优雅的方法吗?我查看了一些MSDN文章,但找不到执行此操作的方法。该解决方案应适用于WindowsXP及更高版本。 最佳答案 对于每个进程

c++ - 从 Windows DLL 返回 C++ 对象

由于Microsoft在其运行时的非DLL版本中实现堆的方式,从DLL返回C++对象可能会导致问题://dll.hDLL_EXPORTstd::stringsomefunc();和://app.c-notpartofDLLbutinthemainexecutablevoiddoit(){std::stringstr(somefunc());}如果DLL和EXE都是使用多线程DLL运行时库构建的,以上代码运行良好。但如果DLL和EXE是在没有DLL运行时库(单线程或多线程版本)的情况下构建的,则上面的代码将失败(使用调试运行时,代码会由于断言_CrtIsValidHeapPointer(

c++ - 在哪里可以下载所有需要的 OpenGL 库、包含和编译的 dll 来制作最新的游戏?

是否有任何用于此目的的软件包,一个下载链接?编辑:现在VBO开始工作了,所以这个问题对我的atm没用,我可以接受答案,但如果有的话。 最佳答案 我建议阅读openglwiki上的入门条目,它经历了这些步骤。http://www.opengl.org/wiki/Getting_started 关于c++-在哪里可以下载所有需要的OpenGL库、包含和编译的dll来制作最新的游戏?,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - 如何让 C++ DLL 调用我重载的全局 new 运算符?

我已经重载了全局新建/删除(和新建[]/删除[])来填充和检查protectedblock。工作正常。现在我链接到C++DLL,传递由DLL填充或修改的STL-Container实例。当销毁这些容器时,我遇到了错误,因为它们不是使用我重载的new运算符分配的,反之亦然,当释放使用我的重载new创建的容器元素时,dll会产生错误。如何让DLL调用我的新运算符(operator)?对于某些DLL,我有源代码,而对于其他DLL,我没有。必须有一个整体方法,即VisualStudio运行时DLLMSVCP*.DLL调用我的重载运算符。我怎样才能让其他DLL也调用我的运算符?a)有了DLL的源代

windows - 如何在 GetLastError() 返回 ERROR_MOD_NOT_FOUND 后获取丢失的 DLL 名称

我的应用程序使用LoadLibrary()加载DLL抑制标准的严重错误处理程序消息框。当LoadLibrary()失败并且GetLastError()返回ERROR_MOD_NOT_FOUND(0x7E)我想找回丢失的DLL名称。此错误代码不仅在请求的DLL丢失时设置,而且在它依赖的任何DLL丢失时设置。值得注意的是,标准消息框(被抑制)显示了正确的缺失DLL名称,问题是如何在代码中获取它。谢谢 最佳答案 我不确定是否有一种简单的方法可以获取丢失的DLL的名称。但是您可能可以通过在调试器中逐步执行LoadLibrary()并查看哪个

c++ - 如何将 Perl Interpreter 嵌入到制作 DLL 的 C++ 应用程序中?

我需要一个用C++构建的DLL,里面有Perl解释器和一个Perl库exiftoolPhilHarvey被C++函数调用。我想在安装了VisualStudio2010VC++的Windows7上执行此操作。哪个Perl发行版最适合此任务:Strawberry或ActiveStatePerl?另外,哪个Perl编译命令:nmake或dmake?最后的最终交付物应该是一个DLL。这可以导入到任何C等程序中,并且将调用DLL函数,这些函数将在内部调用PhilHarvey的exiftool。库函数/参数/开关。 最佳答案 如果你已经安装了P

windows - 使用 Makefile 创建 DLL 以在 Windows XP(32 位)和 Windows 7(64 位)上运行

我需要修改下面的makefile以创建一个将在32位Windows和64位Windows环境中运行的dll(SampleNew.dll)。也许创建两个dll(一个用于64位,一个用于32位)是最好的方法。它需要使用SampleApi.dll(在下面的LIBS声明中)。以下不会为Windows创建有效的32位dll。关于如何修改以下内容以使其工作的任何想法?CMODE=SWIG=swigCC=$(PREFIX)gccLD=$(CC)OBJ_DIR=objAUTOGEN_DIR=../src/javaPACKAGE_DIR=$(AUTOGEN_DIR)/com/test/samplePAC

c++ - 从 DLL 访问 Windows CE .EXE 符号

我有一些代码可以在Unix(Linux和Solaris)和Windows(准确地说是7)上运行,但不能在WindowsCE上运行。这段代码实现了一个插件框架,需要将符号从可执行文件导出到加载的插件中。我无法获取加载的插件(DLL)来解析来自主可执行文件的符号。我已将接口(interface)缩减为主可执行文件中的单个函数,其定义如下:extern"C"__declspec(dllexport)constchar*translate_name(constchar*key){...}如果我在可执行文件上运行Dumpbin/EXPORTS,我会将其视为导出符号之一:815000001474t