jjzjj

c++ - 如何在exe文件中构建C++项目嵌入所有动态链接库?

各位,我正在开始开发一个C++项目,在这个项目中我必须使用一些开源项目有几个dll文件。然后我有一个问题“如何构建C++项目,将所有动态链接库嵌入到exe文件中?”感谢帮助!注意:抱歉,我忘了我在x86上使用visualstudio编译器 最佳答案 您的问题没有通用的答案。这取决于你是否需要它是跨平台的。但是,由于您提到“x86上的visualstudio编译器”,我敢打赌您的目标是Windows。在这种情况下,您有两种选择:官方推荐的方法:将您的dll作为资源嵌入到您的可执行文件中;然后当你的程序启动时,你将这些dll作为临时文件

c - 从 dll 导出函数指针

我在一个dll文件中有一个函数指针(在实现中,而不是头文件中)。在exe源码中如何调用this指针指向的函数? 最佳答案 您可以导出返回指针的函数。header:typedefvoid(*MyPtr)();__declspec(dllexport)MyPtrGetMyPtr();来源:MyPtrGetMyPtr(){//retunrthefunctionpointerhere} 关于c-从dll导出函数指针,我们在StackOverflow上找到一个类似的问题:

windows - shell 扩展会导致我的程序崩溃吗?

我的公司构建了一个在WindowsXP上运行的MFC应用程序。我们的一位客户报告说,此应用程序在打开通用文件对话框以允许用户保存日志文件时发生崩溃。我们还没有在我们的任何集成系统上观察到这种崩溃。客户向我们提供了一个故障转储,显示该程序正试图从地址160b2d48处的一些不可访问的内存中读取。该地址似乎来自地址空间的代码部分,因为在其正上方和下方加载了DLL(15dc0000-16085000和160c0000-1611b000),但该地址未加载任何内容。崩溃线程的堆栈如下:>shell32.dll!CFSFolder::GetDetailsEx()+0x533c8bytesshell

c++ - 在安装了 VS08 的旧 XP 中使用最新的 dll 函数

我想使用只有Vista或更高版本的操作系统支持的dll中的函数。因为我用的是XP,不想升级到Vista或者Win7。有没有一种方法可以使用dlls/api函数在我当前XP上安装的VS08中进行编码? 最佳答案 如果您安装了WindowsSDK,您应该能够为更高版本的Windows制作二进制文件。不过,您将无法运行。http://www.microsoft.com/download/en/details.aspx?id=3138 关于c++-在安装了VS08的旧XP中使用最新的dll函数,

windows - xperf 调用堆栈跟踪,特定于 dll

我在使用xperf跟踪获取完整调用堆栈时遇到了一些问题。这是在Win764位电脑上。在更高层次上,我有一个加载多个dll的exe,它们也完成了大部分工作。所有pdb文件都在一个目录中,并且我在可执行代码中获得了有效的符号和调用堆栈,因此我非常确定我的符号路径设置正确。只要我的exe调用其中一个加载的dll,我就会丢失调用堆栈信息并且堆栈列显示plugin_name.dll!?,它在展开时会调用自身。权重选项卡显示高百分比(50-90%)和高计数,但我无法获得堆栈的任何实际函数调用。例如:Process,Stack,Module,Function,Weight,%Weight,Count

windows - 如何在 Windows 7 中从 .bat 文件注册 DLL

作为穷人安装的一部分(在Windows7上),我需要从.bat文件注册一个DLL。我为用户提供一组构成应用程序的文件,告诉他们将它们复制到某个(任何)目录,然后,作为安装的第一部分,告诉他们执行我的register.bat文件,该文件调用regsvr32适当的DLL(s)此操作失败并出现0x80004005(权限)错误。然后我尝试以管理员身份运行.bat文件。这不起作用,因为它在\windows\system32中打开命令提示符,这不是要注册的DLL所在的位置。因为我不知道用户将register.bat文件放在哪里,所以我无法将DLL文件的路径放在.bat文件中。有什么想法吗?

windows - 从 sictus prolog pl 文件窗口创建一个独立的 exe 文件

我有一个sictusprolog文件(.pl文件),我想将其导出为exe文件以在另一台计算机上运行。搜索SICS文档并使用spld给了我一个exe文件,该文件在另一台计算机(运行windowsxpx86)上无法运行。我在Windows7专业版(x64)上使用Sicstus,并希望获得有关如何从sicstusprolog文件创建将在x86和x64窗口上运行的独立exe的简单分步说明。类似于:1:使用...编译pl文件2:...这可能吗?PS假设我对依赖关系和dll:s一无所知PPS代码使用一个模块:-use_module(library(sets)). 最佳答

c++ - 如何重新加载隐式链接的dll

我面临一个隐式链接的dll问题。我有一个用C++编写的应用程序,它隐式链接到dll。经过特定次数的迭代后,dll函数无法按预期工作。我想重新加载这个dll,以便新加载的dll正常工作。问题是由于dll隐式链接到应用程序,我无法在运行时重新加载dll。有什么办法可以让隐式链接的dll再次重新加载?提前致谢。 最佳答案 您不能强制重新加载隐式链接的DLL。您将需要使用显式链接。 关于c++-如何重新加载隐式链接的dll,我们在StackOverflow上找到一个类似的问题:

windows - 在其他机器上运行C++程序

所以我知道这是一个常见问题。我希望能够在其他Windows机器上运行C++程序,而无需在它们上安装VisualStudio。自然地,我收到有关缺少dll文件的错误消息。我想知道我是否可以创建一个安装程序来安装该dll然后能够运行该程序。那行得通吗?还有其他需要的文件吗?如果会,我会怎么做?有一个自动安装程序肯定会很好。谢谢 最佳答案 看看有没有static编译选项。应该有。这样你就可以静态编译你的程序,什么会把所有必需的dll文件放在可执行文件中,这样你就可以在其他windows平台上移动exe文件,而不需要安装VS。

.net - 缺少 Visual Studio MSVCP110D.dll

我最近下载并安装了VisualStudio2012RC并用它制作了一个程序。但是,如果我尝试在另一台计算机上运行编译后的二进制文件,我会收到一条错误消息Theprogramcan'tstartbecauseMSVCP110D.dllismissingfromyourcomputer.Tryreinstallingtheprogramtofixthisproblem.我的电脑上没有错误。我假设是因为VisualStudio为我安装了该文件。如何编译该程序,使其在没有该DLL文件的计算机上运行?我发现(如果我错了请纠正我)这个DLL文件是.NETFramework4或4.5Beta的一部分