zoukankan      html  css  js  c++  java
  • windows 核心编程第五版 源代码 无法编译的问题

          这段时间没事做,找了本windows 核心编程第五版 来看,下了源代码,编译,200多的编译错误。

    上网找了下,都说装最新的SDK,当然,如果是家里的电脑,那安装就好了。如果是工作电脑最好就谨慎点。

    装了SDK也不一定好使,有的哥们装了,原来的又编译不过了,都是路径的问题。

          其实也不一定需要更新SDK,主要是认真看看问题,第五版是关联到VISTA,所以有些宏或函数就变成在之下的系统不能用了。

         举个例子,APIHOOK的代码中有一段这样

    void CAPIHook::FixupNewlyLoadedModule(HMODULE hmod, DWORD dwFlags) {

       // If a new module is loaded, hook the hooked functions
       if ((hmod != NULL) &&   // Do not hook our own module
           (hmod != ModuleFromAddress(FixupNewlyLoadedModule)) &&
        
           ((dwFlags & LOAD_LIBRARY_AS_DATAFILE) == 0) &&
          ((dwFlags & LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE) == 0) &&
           ((dwFlags & LOAD_LIBRARY_AS_IMAGE_RESOURCE) == 0)
           ) {

          for (CAPIHook* p = sm_pHead; p != NULL; p = p->m_pNext) {
             if (p->m_pfnOrig != NULL) {
                ReplaceIATEntryInAllMods(p->m_pszCalleeModName,
                   p->m_pfnOrig, p->m_pfnHook);  
             } else {
    #ifdef _DEBUG
                // We should never end up here
                wchar_t szPathname[MAX_PATH];
                GetModuleFileNameW(NULL, szPathname, _countof(szPathname));
                wchar_t sz[1024];
                StringCchPrintfW(sz, _countof(sz),
                   TEXT("[%4u - %s] impossible to find %S\r\n"),
                   GetCurrentProcessId(), szPathname, p->m_pszCalleeModName);
                OutputDebugString(sz);
    #endif
             }
          }
       }
    }

    注意红色部分:LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE和LOAD_LIBRARY_AS_IMAGE_RESOURCE在Vista之下的系统根本没用,所以只要把代码((dwFlags & LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE) == 0) &&
           ((dwFlags & LOAD_LIBRARY_AS_IMAGE_RESOURCE) == 0)删除掉就能顺利编译了。

    另外windows 核心编程第五版的随书代码,有些是需要Mfc库支持的,如果发现有的代码不行,就链接MFC试试。

  • 相关阅读:
    阿里云安装Kafka并配置外网访问
    Golang之select中time.After()为什么不生效
    macOS配置GitHub和GitLab共存
    Golang获取HTTP请求IP
    macOS下安装Python3.8并设置为默认版本
    mysql之力扣数据库题目620有趣的电影优化记录
    Pgsql之查询一个月份的天数
    Pgsql之查询一段时间内的所有年月yyyy-mm
    Pgsql之查询一段时间内的所有日期
    swiper下echarts点击事件失效
  • 原文地址:https://www.cnblogs.com/niuniu502/p/1760989.html
Copyright © 2011-2022 走看看