草庐IT

c++ - 在执行过程中替换可执行文件时如何处理 "/proc/self/exe"的 readlink()?

在我的C++应用程序中,我的应用程序在fork()ed子进程中执行execv()以使用相同的可执行文件来处理新子进程中的某些工作具有不同参数的进程,这些参数通过管道与父进程通信。为了获得自己的路径名,我在Linux端口上执行以下代码(我在Macintosh上有不同的代码):constsize_tbufSize=PATH_MAX+1;chardirNameBuffer[bufSize];//Readthesymboliclink'/proc/self/exe'.constchar*linkName="/proc/self/exe";constintret=int(readlink(lin

C#利用Costura.Fody制作绿色单文件程序(含多个Dll)合并成一个Exe)

开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了。这样交给用户很不方便,希望的效果是直接交付一个exe文件。这时候就需要借助一款名为Fody.Costura的插件。Fody.Costura是一个Fody框架下的插件,可通过Nuget安装到VS工程中。安装之后,就可以将项目所依赖的DLL(甚至PDB)文件全部打包到EXE文件里。使用Costura.Fody,这个强大之处是可以在build阶段直接将依赖的DLL合并在目标EXE中,支持非托管DLL进行mixedmode打包。不足之处是只能将DLL合并到EXE中,不支持DLL和DLL的合并。githu

从Linux读取EXE版本的C库?

是否有我可以在Linux中使用的库,该库将返回资源管理器的版本选项卡中列出的WindowsEXE文件的属性?这些是产品名称、产品版本、描述等字段。对于我的项目,EXE文件只能从内存中读取,不能从文件中读取。我想避免将EXE文件写入磁盘。 最佳答案 该文件的版本在VS_FIXEDFILEINFOstruct,但你必须在可执行数据中找到它。有两种方法可以做你想做的事:在文件中搜索VERSION_INFO签名并阅读VS_FIXEDFILEINFO直接构造。找到.rsrc部分,解析资源树,找到RT_VERSION资源,解析它并提取VS_FI

从Linux读取EXE版本的C库?

是否有我可以在Linux中使用的库,该库将返回资源管理器的版本选项卡中列出的WindowsEXE文件的属性?这些是产品名称、产品版本、描述等字段。对于我的项目,EXE文件只能从内存中读取,不能从文件中读取。我想避免将EXE文件写入磁盘。 最佳答案 该文件的版本在VS_FIXEDFILEINFOstruct,但你必须在可执行数据中找到它。有两种方法可以做你想做的事:在文件中搜索VERSION_INFO签名并阅读VS_FIXEDFILEINFO直接构造。找到.rsrc部分,解析资源树,找到RT_VERSION资源,解析它并提取VS_FI

linux - Dumpbin.exe for Linux 查看导入

我不确定我的问题在Linux方面是否有意义。我正在寻找与VisualStudio工具包中的dumpbin.exe类似的东西。基本上,我有一个包含一堆库和一个可执行文件的现有项目。我想弄清楚哪些库是真正需要的,以及每个库中的哪些函数。我只使用共享对象,因为这个项目是针对ARM设备的。 最佳答案 也许您可以使用ldd和nm。ldd会告诉您需要哪些共享对象(也就是win中的dll)。nm将告诉转储符号。运行示例:$lddalinux-vdso.so.1=>(0x00007fffd1dff000)libc.so.6=>/lib/libc.s

linux - Dumpbin.exe for Linux 查看导入

我不确定我的问题在Linux方面是否有意义。我正在寻找与VisualStudio工具包中的dumpbin.exe类似的东西。基本上,我有一个包含一堆库和一个可执行文件的现有项目。我想弄清楚哪些库是真正需要的,以及每个库中的哪些函数。我只使用共享对象,因为这个项目是针对ARM设备的。 最佳答案 也许您可以使用ldd和nm。ldd会告诉您需要哪些共享对象(也就是win中的dll)。nm将告诉转储符号。运行示例:$lddalinux-vdso.so.1=>(0x00007fffd1dff000)libc.so.6=>/lib/libc.s

VisualStudio(2022)- 打包项目文件为.exe安装包

目录前言:一、安装扩展二、制作安装包(setup文件)2.1、添加setup项目2.2、配置setup项目2.3、添加项目文件到setup项目中扩展知识:三个文件夹说明2.4、设置项目主输出2.5、设置快捷方式2.6、生成安装包前言:使用扩展:installProjects 注意事项:打包项目前,确保项目能正常运行,不然打包毫无意义。一、安装扩展打开vs软件->扩展->管理扩展->搜索installProjects->安装->重启软件二、制作安装包(setup文件)2.1、添加setup项目右击项目的解决方案->添加->新建项目->搜索setup,找到setupProject->点击下一步2.

VisualStudio(2022)- 打包项目文件为.exe安装包

目录前言:一、安装扩展二、制作安装包(setup文件)2.1、添加setup项目2.2、配置setup项目2.3、添加项目文件到setup项目中扩展知识:三个文件夹说明2.4、设置项目主输出2.5、设置快捷方式2.6、生成安装包前言:使用扩展:installProjects 注意事项:打包项目前,确保项目能正常运行,不然打包毫无意义。一、安装扩展打开vs软件->扩展->管理扩展->搜索installProjects->安装->重启软件二、制作安装包(setup文件)2.1、添加setup项目右击项目的解决方案->添加->新建项目->搜索setup,找到setupProject->点击下一步2.

php - Windows CMD.exe "The system cannot find the path specified."

通过将Windows恢复到以前的状态解决消息(系统找不到指定的路径。)显示...1)当我打开新的CMD(Win+R=>cmd)时。它从介绍开始。(第3行)MicrosoftWindows[Version6.1.7601]Copyright(c)2009MicrosoftCorporation.Allrightsreserved.Thesystemcannotfindthepathspecified.C:\Users\ViliamKopecky>2)当我执行类似cmd/Cdir的命令时(或cmd/Cphp-v或其他)(第2行)C:\Users\ViliamKopecky>cmd/Cdir

php - Windows CMD.exe "The system cannot find the path specified."

通过将Windows恢复到以前的状态解决消息(系统找不到指定的路径。)显示...1)当我打开新的CMD(Win+R=>cmd)时。它从介绍开始。(第3行)MicrosoftWindows[Version6.1.7601]Copyright(c)2009MicrosoftCorporation.Allrightsreserved.Thesystemcannotfindthepathspecified.C:\Users\ViliamKopecky>2)当我执行类似cmd/Cdir的命令时(或cmd/Cphp-v或其他)(第2行)C:\Users\ViliamKopecky>cmd/Cdir