• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 444
  • Last Modified:

Numerous dependency problems loading MFC app.

Hi experts,

Hopefully this is something you've seen commonly.

I have to be able to port my MFC app (currently statically-linked to the MFC libraries) to various versions of Windows but have hit snags.  Windows XP seems to run it fine, this includes x86 and x64 versions (with IE 6 or 8 installed), but strangely not versions running IE 7.

In Vista Ultimate x86 (with IE 8) dependency-walker shows (not tested x64 yet):-

'Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module' and tehre is an hourglass and red 'window' icon next to 'IEFrame.DLL'.

Windows 7 x64 shows the same above error, but also the following 3 errors:-

- Red frame next to 'SHLWAPI.dll'
- hourglass and yellow question mark circle next to IESHIMS.dll (with error that it cannot find this file).
- hourglass / yellow question mark next to GPSVC.dll (with can't find file error).

Any ideas? I really need to get this working :(

Thanks a million if you can help,
Chris J

1 Solution
You didn't mention the VS version.
You need to check C Run-Time libraries in the project settings - it should be Multi-Threaded for the release configuration (I think, this the most important point).

It makes sense to check the big values there such as _WIN32_WINNT, WINVER, WIN_32IE, etc. http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspx

It is not clear which API you use and it is not necessary that these DLLs will be installed on each computer. So you may need to load these DLLs dynamically.

If you have MFC in your app, it can be even impossible to run on all Windows versions. I hope you are not talking about Windows Me Something Enabled.
SHLWAPI.dll, IEFrame.DLL. etc. - if you compile your app for 0x500 windows version and IE6 (it's all in stdafx.h) and you will set C Run-Time libraries to Multi-Thread (without DLL), I think, your app will work on the Windows versions you mentioned.
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

chrispauljarramAuthor Commented:

Have been off work for a while, will post more info on this shortly as there are still problems - thanks again for your help guys, hope you had a nice Christmas and happy new year!

Chris J
chrispauljarramAuthor Commented:
Sorry for the delays, I will need more assistance with this later but yet again have been sidetracked.  We're in the throws of a major product release at the moment and the priorities are constantly changing - I'm going to award the points for help now and when I've had a closer look I'll post a more specific question.

Thanks again,
chrispauljarramAuthor Commented:
Closed until I have more information.
I had the same problem with those exact missing files. I am using VS 2008 C#. To fix the problem I changed the "Platform target: x86" rather than "any cpu". That fixed the problem for me.

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now