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 215379
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T18:27:53+00:00 2026-05-11T18:27:53+00:00

I have successfully upgraded an MFC application which was compiled with an old version

  • 0

I have successfully upgraded an MFC application which was compiled with an old version of Developer Studio to Visual Studio 2008. A very small number of changes were needed because of some breaking changes in MFC. Now that everything works, I’d like to take the next step and compile the solution with /clr.

To do so, I have found useful information on the MSDN web site:

  • How to: Migrate to /clr
  • How to: Compile MFC and ATL Code with /clr

Here are the steps I have taken:

  1. Set the Runtime Library to Multi-threaded Debug DLL (/MDd).
  2. Set the Use of MFC to Use MFC in a Shared DLL.

However, doing so prevents me from linking the project:

  1. The reference to afxData can no longer be resolved; somehow, afxData is only visible when linking statically against MFC. In my code, I have the following declaration:

    extern AFX_DATA AUX_DATA afxData;

    which works fine with the statically linked MFC version.

  2. The references to _afxThreadState and _afxWinState cannot be resolved either.

Here are the full error messages :

error LNK2001: unresolved external symbol "struct AUX_DATA afxData" (?afxData@@3UAUX_DATA@@A)
error LNK2001: unresolved external symbol "class CThreadLocal<class _AFX_THREAD_STATE> _afxThreadState" (?_afxThreadState@@3V?$CThreadLocal@V_AFX_THREAD_STATE@@@@A)
error LNK2001: unresolved external symbol "class CProcessLocal<class _AFX_WIN_STATE> _afxWinState" (?_afxWinState@@3V?$CProcessLocal@V_AFX_WIN_STATE@@@@A)

in case this might be related to the name mangling…

So, what can I do in order to dynamically link against MFC, but still reference afxData, _afxThreadState and _afxWinState?

  • 1 1 Answer
  • 3 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-05-11T18:27:54+00:00Added an answer on May 11, 2026 at 6:27 pm

    When using MFC in a shared DLL, AUX_DATA must be dllimported.

    extern __declspec(dllimport) AUX_DATA afxData
    

    For thread state, rather than using template classes, use one of these

    AFX_MODULE_THREAD_STATE* pState = _AFX_CMDTARGET_GETSTATE()->m_thread;
    AFX_THREAD_STATE* pState = AfxGetThreadState(); 
    

    Depending on the state information you require. For example, see here for some members that were moved to module state to fix a bug. Note that AfxGetModuleThreadState exists but is undocumented and could be changed in a future version.

    Win state does not ring a bell, how is it used? There is probably a new way to accomplish it.

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

Sidebar

Related Questions

I have successfully connected to an Oracle database (10g) from C# (Visual Studio 2008)
I have an application which runs on rails 2.3.2 and now i upgraded my
What I have now (which successfully loads the plug-in) is this: Assembly myDLL =
I have been using Hibernate very successfully, but today I noticed a bizarre phenomenon
Hi I have successfully upgraded My 1.0 installation to 1.5. Now my problem is
I have been using delayed_job successfully for a while. I upgraded my Rails installation
I have recently upgraded to Rails 3 and created a new application with Rails
I have a Rails app that I have successfully tested with Mongrel and Webkit.
I believe that I have successfully impersonated my own user account while running an
I'm familiar with the LAMP stack and over the years have successfully deployed a

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.