草庐IT

$二进制

全部标签

c++ - 使用 GCC 将 C++ 应用程序静态编译为二进制文件

如何在面向unix的Ubuntu机器上使用GCC静态编译应用程序?我将如何定位32位/64位机器和具有不同版本GLIBC或任何unixC++应用程序通常依赖的机器?然后我想以二进制形式分发这个应用程序并在unix机器上运行它而不需要从源代码编译。同样,我可以compilethisapponWindowssuchthatitwillrunonunix? 最佳答案 要编译它以便它可以在Linux上运行,只需像这样编译它:g++-omyappmyapp-a.copmyappb.cop-Lmylib1这应该适用于大多数Linux版本,以及某

c++ - 从 Windows 二进制文件中删除 msvcp90d.dll 依赖项

我有一个我分发的dll,它不能在某些Windows操作系统上运行。使用dependancywalker我发现这些系统上缺少msvcp90d.dll。我不想要任何需要C++可再发行组件的运行时依赖项,并且由于调用DLL的应用程序不是用C++编写的,因此它对C++可再发行组件没有任何依赖性。我猜我在编译dll时在链接器首选项中留下了DEBUG选项,这就是它需要msvcp90d.dll的原因?添加:抱歉,我在原来的问题中粘贴了错误的dll名称……在显示器前的时间太长了……这个dll是我在VS2008编译的第三方dll,不是我写的。 最佳答案

二进制的 C++ Windows 进程 ID

我想在Windows上用C++将程序的进程ID(通过程序本身)写入文件(首选二进制文件)。我看到函数的使用:GetProcessId,但我没有设法使用它。1)如何使用?2)如何将值转为二进制并写入文件?谢谢 最佳答案 您可以使用GetCurrentProcessId()获取当前进程的进程ID。然后你可以使用ultoa使用基2(和大小为sizeof(DWORD)*8+1)的缓冲区将该数字转换为字符串,然后您可以使用ofstream或fwrite将其写入文件。例子:DWORDid=GetCurrentProcessId();charbu

.net - 从 VB.Net 中的二进制文件中提取字符串

我想从一些包含嵌入式SQL语句的二进制文本文件中抓取字符串数据。我不需要任何花哨的清理——只是一些提取可读文本的方法。我使用的是vb.net,但也可以调用外部实用程序。 最佳答案 供引用:http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx 关于.net-从VB.Net中的二进制文件中提取字符串,我们在StackOverflow上找到一个类似的问题: https://stackoverflo

windows - 在 windbg 中调试 "release-mode"二进制文件/转储

我还没有找到在windbg中调试RELEASE模式二进制文件或转储的好资源。据我了解,启用编译器优化后,调试会变得更加受限。但有时我别无选择——例如,对不可重现的问题进行故障转储分析。如果有一些文章描述发布二进制文件的可能性(或注意事项),那就太好了。有人知道这样的资源吗?我正在寻找类似this的内容,但有更多的细节。我希望AdvancedWindowsDebugging会有一些东西,但没有这样的运气。 最佳答案 第一条规则:保留来自您发布的每个构建的所有pdb:来自exe和您生成的任何其他dll第二条规则:尝试获得重现步骤,因为能

java - 在java中读取二进制文件时将小端转换为大端

现在我有一个程序,我必须在其中从二进制文件中读取数字。数字是小端,我必须转换为java代码的大端。我什么也没有得到。所以任何人都可以发布我怎么能做吧。请。谢谢。 最佳答案 使用nio和ByteBuffer读取它,您将在其上完成.order(ByteOrder.LITTLE_ENDIAN)。Javadoc 关于java-在java中读取二进制文件时将小端转换为大端,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

C++ Windows 十进制到 UTF-8 字符转换

我一直在使用下面的函数将unicode字符的十进制表示形式转换为C++中的UTF8字符本身。我目前拥有的功能在Linux/Unix系统上运行良好,但它在Windows上不断返回错误字符。voidGetUnicodeChar(unsignedintcode,charchars[5]){if(code>6);chars[0]=0xC0|(code&0x1F);chars[2]='\0';}elseif(code>6);chars[1]=0x80|(code&0x3F);code=(code>>6);chars[0]=0xE0|(code&0xF);chars[3]='\0';}elseif

.net - CLR 如何实现 COM 实现的二进制级别的互操作性?或者不?

COM是一个对象在内存中以二进制级别表示的标准。考虑到这一点,在任何语言中使用COM对象都很容易。您只需要以COM要求的方式解释内存,您就可以控制COM对象。我认为CLR是用相同的互操作性思想创建的,但是有一个抽象层,比如自己的语言(不是二进制)。考虑到这一点,CLR如何实现像COM那样的二进制级别的互操作性?还是没有达到?COM和CLR是互补的东西吗?或者是相互替代的东西,因为MS似乎一直在做。使用COM,您不依赖于虚拟机。使用CLR,您是否依赖于虚拟机? 最佳答案 有天壤之别。COM通过简单实现了互操作性。规则非常少,只有标准化

windows - Perl:获取二进制支持的最低操作系统

是否有Perl命令可以让我获得任何给定二进制文件支持的最低操作系统?您可以通过运行“link/dump/headers[binaryFile]”并查找“子系统版本”链接来手动获取该信息。我不想使用它,因为它的性能非常差。谢谢 最佳答案 如果Windows需要这个,请使用get_manifest来自Win32::Exe.您需要先安装它。 关于windows-Perl:获取二进制支持的最低操作系统,我们在StackOverflow上找到一个类似的问题: https

c++ - 构建一个不依赖 dll 的 C++ 二进制文件

我写了一些C++代码。我把它发给了我的friend,他不是开发人员。在Windows7上,他收到错误消息“程序无法启动,因为缺少msvcr120.dll”如何构建它才能运行?我是否需要使用MSVC2008进行编译?2005?我希望它能在vista+上运行 最佳答案 我认为您可以使用/MT代替/MD静态链接运行时库参见http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx右键单击您的项目->属性->C/C++->代码生成->将“运行时库”设置为“/MTd”用于调试,“/MT”用于发布