草庐IT

$二进制

全部标签

c++ - 编译十六进制网格程序时错误代码C2768

首先我想说我在编码方面的经验很少。高中时只有几节课。我最近有了为我的D&Dsession开​​发交互式游戏网格的想法。所以我安装了VisualStudio并找到了Amit的创建六边形网格的指南:https://www.redblobgames.com/grids/hexagons/我基本上是在复制代码并尝试在进行过程中理解它。我将首先发布整个程序,然后发布我的编译错误所在的代码片段。#include"stdafx.h"#include#include#include#include#include#include#defineM_PI3.141592653589793238462643

c++ - 内联函数是否使对编译后的二进制文件进行逆向工程变得更加困难?

所以基本上,除了可能的性能影响之外,内联函数是否对从编译和链接的二进制文件中逆向工程程序的难度有相当大的影响?我的意思是,它应该是,因为1)黑客只是看到了更多的机器指令,而不是很好理解的“调用XXXXX”,他可能已经发现可以做某事。2)内联为编译器优化代码提供了更多的可能性,那更令人困惑,对吧?此外,考虑到inline关键字只是对编译器的一个建议,这到底能起到多大的作用?我们应该打扰吗?我的意思是,当然他们最终会破解它,但如果通过如此简单的措施我们可以让破解者的生活更艰难,为什么不呢? 最佳答案 是否选择内联方法不应基于逆向工程的难

爱沙尼亚(ET-EE)语言环境中的十进制分离器以DOT而不是逗号而不是Windows Server中的逗号

当我试图通过使用以下代码来找到一个称为爱沙尼亚爱沙尼亚(ET-EE)的特定语言环境的小数分离器时,它将作为dot而不是逗号(仅在WindowsServer中)来,但是在我的本地Windows计算机中,它将作为comma来,这是该语言环境的正确十进制分离器。谁能帮我这个地方如何获得适当的小数分离器?CultureInfocultureInfo=newCultureInfo("et-EE");StringdecimalSeparator=cultureInfo.NumberFormat.CurrencyDecimalSeparator;看答案您的示例代码不会更改任何格式设置...只要您不为格式化功

c++ - 从文件中解析二进制数据

提前感谢您的帮助!我正在学习C++。我的第一个项目是为我们在实验室使用的二进制文件格式编写一个解析器。我能够使用“fread”在Matlab中相当轻松地使解析器工作,看起来这可能适用于我在C++中尝试做的事情。但从我读到的内容来看,似乎推荐使用ifstream。我的问题有两个方面。首先,使用ifstream相对于fread的优势到底是什么?其次,如何使用ifstream来解决我的问题?这就是我想要做的。我有一个包含一组结构化整数、float和64位整数的二进制文件。共有8个数据字段,我想将每个字段读入其自己的数组。数据结构如下,重复288字节block:Bytes0-3:intByte

c++ - 从二进制文件读取字节到 long int

我有两个问题:我有一个二进制文件中的数据。我想通过使用读取函数读取前8个字节以签名longint,但我不能。你知道我该怎么做吗?如何直接读取一段数据为字符串?我可以像中所示那样阅读吗例如:ifstreamis;is.open("test.txt",ios::binary);stringstr;is.read(str.c_str,40);//40bytesshouldberead 最佳答案 Iwantreadfirst8bytestosignedlongintbyusingreadfunctionbutIcouldnot.Doyouk

c++ - valgrind 改变二进制行为

我尝试使用valgrind追踪C++程序中的内存泄漏。该程序是用g++编译的,可以运行而不会抛出任何错误。不幸的是,valgrind以一种在抛出运行时错误后崩溃的方式改变了我的程序的行为。由于此崩溃发生在到达代码的相关部分之前,我没有机会追踪我的内存泄漏。整个问题由附加的控制台输出说明。myUser@computer:~$./myPrograminput.xmlProcessing...Finishedsuccessfully...----------------------HitEntertocontinue...myUser@computer:~$valgrind--leak-ch

c++ - 确定二进制文件的大小

我正在尝试读取一个二进制文件,我需要确定它的大小,但无论我尝试过哪种方法,我得到的大小都是零。例如:fstreamcbf(address,ios::binary|ios::in|ios::ate);fstream::pos_typesize=cbf.tellg();//Returns0.char*chunk=newchar[size];cbf.read(chunk,size);//...如果我要使用以下内容:#includestructstatst;stat(address.c_str(),&st);intsize=st.st_size;大小仍然为零。我也尝试了以下方法,但它仍然为零。

c++ - 启动失败。找不到二进制文件

我正在尝试将eclipse设置为使用C++,但是当我尝试运行一个基本程序时,我收到错误:Launchfailed。找不到二进制文件这也会打印到控制台:Configurationfailedwitherror(Cannotrunprogram"sh":Launchingfailed)这是我设置的路径:C:\ProgramFiles\Java\jdk1.7.0_01\bin;C:\msys\1.0\bin;C:\mingw\bin;我们将不胜感激。 最佳答案 对于Windows:Project/Properties/C/C++Build

c++ - 为什么要二进制兼容?

我正在学习PIMPL习语。它的优势之一是二进制兼容性。我想知道二进制兼容性的优点是什么。谢谢! 最佳答案 它避免了FragileBinaryInterfaceProblem.它是这样的:程序使用库。用户升级图书馆。升级会更改库的二进制接口(interface)中的某些内容。程序在重新编译之前无法运行,因为它是针对旧的二进制接口(interface)构建的。PIMPL惯用语的优点之一是它允许您将通常属于类公共(public)接口(interface)的内容移动到它的私有(private)接口(interface)中(实际上,移动到私有

C++:在 C 或 C++ 中以普通文本模式(非二进制)写入 vector 文件以输出最快

编写std::vector的最快方法是什么?(或与此相关的任何连续容器)到不是二进制文件(即文本模式)的文件?在我的例子中,速度很重要,vector会不断生成并写入文件。在二进制模式下,自std::vector以来相当简单在内存中是连续的。请注意,我不想依赖Boost序列化。(尽管如果这是最优雅的方式,我可能会被迫这样做……)。另外我需要一系列字符来分隔元素(即空格)这就是我目前正在做的事情(是一个例子),但这是非常通用的,即使我写了一个运算符对于vector.是否有此代码的更优化版本,或者我只剩下这个?std::ofstreamoutput(...);...templatewrite