1. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2002
    Rep Power

    Using MFC amd .NET dlls in a single project

    I have 2 dlls - one build with a MFC support an dthe other is fully managed .NET dll.
    Both of them incapsulate a class CBString - in MFC it is something like SCtring, in .NET - like String.

    I want to create a project that will be able to use any version of this class by user choice. The idea is to create a single code for using both dll versions.

    I created a .h file that will do the choosing.

    the code is something like:

    #ifdef _MFC_

    #pragma unmanaged
    #include <.h file declaring my CBString class>


    #pragma managed
    #using "<the .dll file built with .NET>"
    using namespase CBString;


    So, if i write
    #define _MFC_
    in my code, the .h file will #include my MFC .h file
    if i won't - it will be #using namespace and .NET dll

    The problems are:

    1) I have to include the MFC dll manually in the Project options->Linker->Additional Dependences.

    2) I have to use /clr compiler option OR create a Managed Application to use the .NET dll

    What I actually want is
    Ability to swith between MFC AND .NET dlls using my CODE ONLY. No manual action will do, even no /clr compiler options, not to tell about Project Options settings.

    I know there must be a way to do this, but I am completely unable to figure it. That's why I'm looking forward to your help.

    Great THANKS in advance.
  2. #2
  3. No Profile Picture
    Offensive Member
    Devshed Novice (500 - 999 posts)

    Join Date
    Oct 2002
    in the perfect world
    Rep Power
    Did you make the DLL's?

    Have you looked at explicit linking (with LoadLibrary() and GetProcAddress() ) as opposed to the implicit link with the .lib (created when you create the DLL).

    (I have not used .NET with DLL's but use WIN32 DLL's explicitly linked and loaded at run time)
    The essence of Christianity is told us in the Garden of Eden history. The fruit that was forbidden was on the Tree of Knowledge. The subtext is, All the suffering you have is because you wanted to find out what was going on. You could be in the Garden of Eden if you had just kept your f***ing mouth shut and hadn't asked any questions.

    Frank Zappa
  4. #3
  5. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2002
    Rep Power


    What I need is to include my class along with all of it's methods and members. I need it to be a part of my code, want to be able to use it as if it was declared inside of my project.
    As far as Iknow exolicit linking will require a declaring the pointers to the dll functions. This is not acceptable.

IMN logo majestic logo threadwatch logo seochat tools logo