November 22nd, 2002, 12:22 AM
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:
#include <.h file declaring my CBString class>
#using "<the .dll file built with .NET>"
using namespase CBString;
So, if i write
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.
November 22nd, 2002, 03:11 AM
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.
November 22nd, 2002, 04:44 AM
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.