Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8381881
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T16:47:42+00:00 2026-06-09T16:47:42+00:00

This program’s stdafx.h is a little like this below. // … #import ./lib/64/msado15.dll rename(EOF,

  • 0

This program’s stdafx.h is a little like this below.

// ...
#import "./lib/64/msado15.dll" rename("EOF", "EndOfFile") no_namespace
// ...

The program works okay and there are no problems.

I was curious about what would happen if I deleted msado15.dll.
So, I deleted it, and the program still works fine.

I assumed that why the program works without msado15.dll in the same directory must be the dll file is loaded somewhere else.

To make sure exactly where the dll is loaded, I used “Dependancy Walker”, and I found out this program is not loading msado15.dll at all.

I would be glad if I could figure out what I’m missing.

Thanks in advance.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T16:47:43+00:00Added an answer on June 9, 2026 at 4:47 pm

    Dependency Walker can only see static DLL dependencies (where there’s a reference in the EXE’s imports table). If a DLL is loaded at runtime via LoadLibrary (or by delay loading — using /delayload), Dependency Walker will not be able to see this.

    #import doesn’t actually impose a static dependency on the DLL. It loads the COM typelibrary information from the DLL at compile time. This is transformed into C++ bindings for the COM classes and interfaces defined in the typelibrary. You can see these as .tli and .tlh files in your Debug or Release directory. You might be able to remove the DLL file, and — as long as these files still exist — VS might continue to build your project successfully.

    Similarly, at runtime, since #import doesn’t actually impose a static dependency on the DLL (that is: it won’t add it to the imports table in the EXE), Dependency Walker will be unable to see this dependency.

    At runtime, however, the EXE will call (indirectly) LoadLibrary, and (if the DLL is missing) this will cause a failure at runtime, which your program might deal with appropriately, or which might cause your program to crash.

    Even with all that said, #import merely imports a COM typelibrary. The COM typelibrary defines the interfaces used in the COM objects, along with the CLSID values of those objects. In order to find the code that implements the COM objects, the CLSID values are resolved using the registry (in HKEY_CLASSES_ROOT\CLSID. The code implementing the COM objects may not actually be in the same binary as the original typelibrary.

    This means that the DLL may not even be required at runtime. I think that this is rare, however.

    Moreover, the COM objects may be implemented as out-of-process objects (meaning that another EXE is loaded). In this case, all that’s loaded into your process will be the proxy/stub DLL configured for the relevant interfaces. Often, these will be defined using the TLB (in which case, your #import-ed DLL will be loaded); but they may be implemented in a completely different DLL. Either way, the DLL will be loaded dynamically, which means that Dependency Walker won’t see it.

    To see which DLLs are loaded by the process, you will need something like SysInternals Process Monitor or Process Explorer.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This program returns: package main import ( flag fmt ) func main() { num_agents
This program reads emails (really just a .txt file structured like an email) and
This program below moves the last (junior) and the penultimate bytes variable i type
This program should not have a visible window, more like a daemon. (a taskbar
This program takes 2 numbers from user input, asks them whether they'd like to
This program is supposed to calculate the number of degrees below 60 on a
This program taken from a book Pro JavaScript Techniques is used to create hover-like
This program below when run does not halt. I don't think I made a
This program builds a dictionary out of a list based on what two index
This program runs just fine, but for some reason when I ask for an

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.