好的,在加载之前获取dll的文件版本很容易。即时通讯使用GetFileVersionInfoSize + GetFileVersionInfo + VerQueryValue,它的工作原理就像一个魅力。
但是,如果该dll已经加载怎么办?我知道您可以使用LoadLibrary + IMAGE_DOS_HEADER + IMAGE_NT_HEADERS来检索某些信息,例如函数名称等。我注意到IMAGE_OPTIONAL_HEADER具有不同的版本字段,例如MajorImageVersion和MinorImageVersion等。如果是,则它们与GetFileVersionInfo返回的值不匹配。所以我猜我看错地方了。有任何想法吗?