![]() |
1
1
Windows上本机编译的代码的版本信息以utf-16(即宽字符串)的二进制形式存储。你仍然可以使用
例如,在我的系统上,C:\windows\notepad.exe上的RMB>属性将文件版本设置为
但是,如果设置了编码,结果会很好:
|
![]() |
2
1
假设您的DLL中有一个访问器来获取需要验证的信息,那么您可以编写一个运行在 wine 并将必要的信息输出到标准输出。在 dynamic link library 维基百科的标题。 另一个选项是找出MSVC++是如何编码这些信息的,以便您可以使用标准的Unix工具对其进行解码或查询。 |
![]() |
3
1
Windows可执行文件和共享库(DLL)将版本信息编码为二进制数据( VERSIONINFO 在 resources 部分。 看一看 this 查看可用于查询版本信息的Win32 API的问题。尽管您需要对代码做一个小的更改。这个 FindResource 和 LoadResource API应该在句柄中传递给您想要其版本信息的exe/dll(已加载到内存中)。传入空值将获取与从中调用此代码的exe相关联的版本信息(这不是您想要的)。 你需要打电话 LoadLibrary 要在磁盘上加载一个exe或dll文件并获取其句柄,请将此句柄作为hmodule参数传递给上述API函数。也可以在获得所需版本信息后将所需信息打印到控制台。 |
![]() |
4
0
为什么不能简单地使用包含
当然,您在两个地方都有版本ID,但它们是从同一个源驱动的。 |
![]() |
sk123 · Shell脚本-如何在循环中显示变量名及其值 1 年前 |
|
sai · unix中使用python进行数据重组 1 年前 |
![]() |
FangQ · 如何使用jq打印由制表符“\t”分隔的JSON数组元素 1 年前 |
|
ROHAN · 我想显示包含一个括号的行,包括它的开头或结尾 1 年前 |
![]() |
Geomicro · 删除模式sed之间的逗号 1 年前 |