草庐IT

c++ - 在不复制 .dll 的情况下运行 .exe

我已准备好交付VisualStudio2015解决方案。我要求.exe应该开箱即用。但是,我收到“缺少dll...”错误。有什么办法可以让某人运行exe而无需下载一堆ddls吗?我能否以某种方式将.exe构建为可独立执行? 最佳答案 是的,您必须静态链接二进制文件。在项目设置(ConfigurationProperties->C/C++->CodeGeneration)中,分别使用/MT、/MTd作为Release、Debug配置。但是,这会增加可执行文件的大小。MSDNdocumentationon/MT,/MTdoptions

c++ - 如何生成包含可通过脚本轻松修改的数据的 exe

我希望生成一个包含两个文件的WindowsEXE(尽管我最终需要支持Mac/Linux),一个配置文件和一个MSI。我会让exe启动MSI,然后将配置文件复制到位。我不太确定如何执行此操作,但我不太担心。但是,我的要求之一是配置文件必须可以使用在Linux服务器上运行的脚本(Ruby)进行修改,因为我需要在下载EXE时更改一些数据。我已经研究了几种实现方法,例如使用xd生成我包含在我的项目中的字节流,但这似乎是一个糟糕的解决方案。也许不是,那是正确的解决方案,但我想确定。有这样做的“正确”方法吗?是否可以简单地将数据附加到可执行文件的末尾并使用C++查找它?我不是在这里寻找完整的解决方

c++ - 如果我使用一个用 C++ 编写的旧 Windows 95 .EXE,并且我想将 8 位整数转换为 16 位整数,会不会很困难?

如果我有一个旧的PC游戏,它的某些变量不能超过255而不会崩溃,是否可以通过修改Windows95可执行文件将所有8位整数转换为16位整数?我说的游戏是1997年的TotalAnnihilation。虽然游戏本身远远超前于时代,并且有能力将其retrofit成史诗般的体验,(见鬼,游戏太超前了,数据文件使用类似JSON的语法...该游戏还支持4K,看起来仍然很棒。)不幸的是,游戏中的武器总数是有限制的。所有的武器都有ID,武器的最大ID是255,如下所示:[NUCLEAR_MISSILE]{ID=122;name=NuclearMissile;rendertype=1;lineofsi

c++ - dll 的环境变量与 exe 不同

我正在Windows7上调试一个64位应用程序,其中c#exe使用nativec++dll。这两个应用程序的环境变量似乎不同,即使它们都在同一进程中执行。调用System.Environment.SetEnvironmentVariable怎么可能对getenv()返回的值没有影响? 最佳答案 环境变量只是一个数据block,它在启动时由窗口传递给进程。您正在使用的运行时函数(System.Environment的BCL和getenv的CRT)可能会在启动期间复制环境,这意味着它们不是在相同的“环境”变量上运行。从概念上讲,他们必须

c++ - 在 C++ 的 .exe 应用程序中包含文件(dll、txt 等)

我制作了一个用C++编写的程序,它使用许多文件,例如.dll或.png。程序和文件在同一目录中。是否可以在.exe应用程序中包含文件?这样我只需要.exe文件就可以运行程序。 最佳答案 啊,是的。答案是在您运行的可执行文件的末尾写入您需要的所有文件,这些文件包含在一个zip文件中。方法如下:Part1(写入可执行文件)和Part2[断开的链接](从可执行文件中读取)。这是有趣的东西;好问题。请注意,您不能对DLL文件执行此操作-它们必须与可执行文件位于同一目录中或安装在计算机上。 关于c

c++ - 开发人员无法执行 .exe 错误 193 : %1 not a valid win32 application

所以我试图像往常一样测试运行我的开发c++,它说无法执行location/name.exe错误193:%1不是有效的win32应用程序。我还没有将编译器用于任何复杂的东西。#include#include#definePI3.14intmain(){intr=3;floatarea=PI*pow(r,2);printf("theareaofthecircleis%f",area);return0;}我正在使用Devc++GCC(MinGW)编译器。它编译正确,但是当我尝试运行时,它收到此错误消息无法执行“C:\Users\SIMJONESNIGLTD\Desktop\clanguage

c++ - VS2005、VS2008下C++生成的EXE速度; VS2010编译器

当我从VS6升级到VS2005时,我发现在默认编译设置下我的国际象棋引擎程序的速度提高了10%。想知道一般情况下是否也是如此,以及从那时起对MSC++编译器的最终输出进行了哪些改进(如果有的话)。 最佳答案 关于从2010之前的VC++版本迁移到VC++2010+:如果您大量使用STL容器和算法,升级到VC++2010+可能会提供显着超过10%的改进,因为VC++2010+实现了C++11的移动语义。我记得关于Boost的一个特定帖子声称从VC++2008迁移到VC++2010后,他们的应用程序性能提高了900%的邮件列表:[boo

RC充电和放电

一、电容充电放电时间计算公式:RC电路的时间常数:τ=RCV0为电容初始电压值;V1为电容充满电压值;Vt为任意时刻的电压值;E 为电源电压;当t=1RC时,电容电压=0.63V1;当t=2RC时,电容电压=0.86V1;当t=3RC时,电容电压=0.90V1;当t=4RC时,电容电压=0.98V1;当t=5RC时,电容电压=0.99V1;经过3~5个RC后,充电过程基本结束。二、充电(电压为E的电源通过R向初值为0的电容C充电,V0=0,V1=E,故充到t时刻电容上的电压为)三、放电(初始电压为E的电容C通过R放电,V0=E,V1=0,故放到t时刻电容上的电压为)四:例如初值为2V的电容C通

C++ 控制台 Application1.exe 已触发断点

当我尝试设置时cub.SetArray(cube);我得到一个错误ConsoleApplication1.exehastriggeredabreakpoint我做错了什么?当我尝试调试cub->cubesarray时,我得到大小-842150451。我不明白为什么。这是我的所有代码classCube{public:staticconstintChange_ARRAY=5;private:stringcolor;intsize;int*walls;intn;//currentsizeofarrayintmaximumsize;//maximumsizeofarrayvoidIncreas

c++ - 获取不知道位置的 .exe 目录中列出的所有文件

我想我的问题是这样的-我如何将exe位置的目录作为LPCWSTR以便我可以将它输入到我的代码中#include#includeintmain(intargc,char**argv){WIN32_FIND_DATAa;HANDLEswap=FindFirstFile(/*(LPCWSTR)__exe_directory__*/,&a);if(swap!=INVALID_HANDLE_VALUE){do{char*sptn=newchar[lstrlen(a.cFileName)+1];for(intc=0;c它会返回目录中列出的文件而不会出错。我知道我的代码已经在给定的目录下运行,我已经