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>
#else
#pragma managed
#using "<the .dll file built with .NET>"
using namespase CBString;
#endif
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.
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)
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.