首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DUMPBIN不显示所有功能

DUMPBIN不显示所有功能
EN

Stack Overflow用户
提问于 2018-02-03 17:41:54
回答 1查看 1.6K关注 0票数 1

我在下面的程序中使用了MicrosoftVisualC++的DUMPBIN实用程序。我确信,对remove的调用最终从kernel32.dll调用了DeleteFileW的Microsoft调用(我用另一个工具确认了这个调用)。那么,当我在下面的程序的DUMPBIN /imports上应用.EXE时,为什么没有看到DeleteFileW系统调用呢?

如何看待DeleteFileW使用DUMPBIN的系统调用?

谢谢,吉拉德

代码语言:javascript
复制
#include "stdafx.h"
#include <iostream>
#include <chrono>
#include <thread>

using namespace std;

int main()
{
    const char* fileName = "gilad.txt";

    this_thread::sleep_for(chrono::milliseconds(10*1000));

    if (remove(fileName) != 0)
        cout << "Remove operation failed" << endl;
    else
        cout << *fileName << " has been removed." << endl;
    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2018-02-03 17:55:12

您的代码不调用DeleteFileW,而是调用remove。大概来自msvcrt.dll。是的,在此之后,msvcrt.dll会为您调用DeleteFileW,但是该部分不会出现在您的可执行文件中。

( dumpbin工作在单个文件上,它不跟踪其他文件的依赖关系)

如何在DUMPBIN输出中看到"DeleteFileW“的系统调用?

您必须在实际引用dumpbin的文件上运行DeleteFileW。这不是上面的代码,而是您可以使用WinAPI创建的另一个代码,或者仅仅作为一个实验,在msvcrt.dll上运行它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48600150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档