They will all work with your .NET application, but it depends what you want to do with them and how to interface with them. The Class Library is a .NET, managed DLL. The MFC DLL is an unmanaged DLL interfaced with the Microsoft Foundation Class Library - the predecessor to .NET in C++. Both are different technologies used to encapsulate the windows API. Lastly, a Win32 DLL is the most basic of DLLs - providing no encapsulation and typically used now for simple programming (such as no GUI or object oriented programming). Again, it all depends what you want to do with the DLL. For example, if you would like to create dialog boxes from within the DLL (not your application), then you would use the MFC or Class Library DLLs. However, since you will be using the DLL in a .NET application, I would stick to Class Library to make life a lot easier. Be forewarned that developing in managed C++ could be a daunting task.
If you however just want to do simple operations, such as processing data, then go with Win32 DLLs. They can easily be imported to a .NET language (VB/C#) by using the DllImport() function.
Hope this helps Abhijit!
For examples, simply do a search for creating DLLs and you will get tons of information.
Here are just a few:
DLL Tutorial Part I: MFC DLL Basics
CodeProject: Win32 vs MFC
Step by Step: Calling C++ DLLs from VC++ and VB - Part 1
Creation of a Simple DLL
I succeeded in making DLL functions and implemented on my projects by using Visual C++ 5.0 or 6.0. This was a very easy job. I challenged the creation of DLL functions by using Visual Studio 2008. I tried to create in the same way as the creation of DLL's by VC++ 6.0, but I failed. I need step-by-step instructions of how to create DLL's by Visual Studio 2008. Please help me.
I appreciate your kind help.
If we look at how AFX_CLASS_EXPORT and AFX_CLASS_IMPORT are defined in afxv_dll.h we see the following.
#define AFX_CLASS_EXPORT __declspec(dllexport)
#define AFX_CLASS_IMPORT __declspec(dllimport)
So, when exporting our classes from our DLL we want the class declarations from the DLL to look like this:-
class __declspec(dllexport) CMyClass : public CObject
And, when importing our C++ classes into our application we want the class declarations from the DLL to look like this:-
class __declspec(dllimport) CMyClass : public CObject
OK, so here's how I do things.
In the stdafx.h file for the export DLL, include two #defines at the bottom of the file like this:-
Now, in the main header file for your DLL, say mylib.h (the main 'point of entry' header for your DLL that you will include in you application later), add the following at the top:-
// The following will ensure that we are exporting our C++ classes when
// building the DLL and importing the classes when build an application
// using this DLL.
#define MYLIB_DLLAPI __declspec( dllexport )
#define MYLIB_DLLAPI __declspec( dllimport )
// The following will ensure that when building an application (or another
// DLL) using this DLL, the appropriate .LIB file will automatically be used
// when linking.
#pragma comment(lib, "mylibd.lib")
#pragma comment(lib, "mylib.lib")
Now, just declare all the C++ classes you want exported from the DLL like this:-
(Note: Any C++ classes not declared with MYLIB_DLLAPI will not be exported from the DLL)
class MYLIB_DLLAPI CMyClass : public CObject
complete variety of quilts is availabale here!
Hi There,I am agree with your post.I found this is an informative and interesting post so i think so it is very useful and knowledgeable. I would like to thank you for the efforts you have made in writing this Pass4sure 199-01 article. I am hoping the same best work from you in the future as well. In fact your creative writing ability has inspired me. Really the article is spreading its wings rapidly...
If you want to use a shared library (DL), you can not call factories directly. You must load the DLL using LoadLibrary, use the resulting driver and the name of the function in the callHebCadress call and call the pointer of the returned function. In order to load a function by name, we must declare it in the DLL with the external selector "C", so it will be exported without the name of the decoration. An alternative would be to add a .def file to a dll project and use a geocoding tool with an ordinal. I hope these general trends help you.