设为首页 加入收藏

TOP

WINAPI编程获取文件版本信息的代码
2014-11-11 18:45:05 来源: 作者: 【 】 浏览:33
Tags:WINAPI 编程 获取 文件 版本 信息 代码

  本文演示如何使用win32 api 编写获得文件描述和产品版本。很简单的小程序。下面就是全部代码:test.c


  //


  // test.c


  // by cheungmine


  //


  #include


  #include


  #define DLLFILE "C:\\WINDOWS\\system32\\aaaamon.dll"


  //


  // 使用 WIN32 API 取得文件的描述和版本信息


  //


  void GetFileDescriptionAndProductVersionA(LPCSTR lpstrFilename,


  LPSTR lpoutFileDescription, UINT cbDescSize,


  LPSTR lpoutProductVersion, UINT cbVerSize)


  {


  typedef DWORD(WINAPI *pfnGetFileVersionInfoSizeA)(LPCSTR,LPDWORD);


  typedef BOOL(WINAPI *pfnGetFileVersionInfoA)(LPCSTR,DWORD,DWORD,LPVOID);


  typedef BOOL(WINAPI *pfnVerQueryValueA)(const LPVOID,LPCSTR,LPVOID*,PUINT);


  HMODULE hDll = 0;


  DWORD dwHandle=0;


  DWORD dwInfoSize=0;


  pfnGetFileVersionInfoSizeA fnGetFileVersionInfoSizeA = 0;


  pfnGetFileVersionInfoA fnGetFileVersionInfoA = 0;


  pfnVerQueryValueA fnVerQueryValueA = 0;


  *lpoutFileDescription = 0;


  *lpoutProductVersion = 0;


  // Load system32\version.dll module


  hDll = LoadLibraryA("version.dll");


  if (!hDll)


  return;


  fnGetFileVersionInfoSizeA = (pfnGetFileVersionInfoSizeA) GetProcAddress(hDll, "GetFileVersionInfoSizeA");


  fnGetFileVersionInfoA = (pfnGetFileVersionInfoA) GetProcAddress(hDll, "GetFileVersionInfoA");


  fnVerQueryValueA = (pfnVerQueryValueA) GetProcAddress(hDll, "VerQueryValueA");


  // If failed to get procdure address


  if (!fnGetFileVersionInfoSizeA || !fnGetFileVersionInfoA || !fnVerQueryValueA){


  FreeLibrary(hDll);


  return;


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言:rsa算法原理 下一篇Win32平台下如何安装Openssl及其..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: