Q: class in a DLL

Posted on 1998-09-13
Medium Priority
Last Modified: 2013-11-20
How do I make a dll with a class in it that I can access in another MFC app?  I have been using _declspec(dllexport) and (dllimport) but for some reason when I link the project to test the class, it has unresolved externals to the imported (from the dll) class's functions.

How to I get a memory pointer to the class (that resides in the dll) so I can use class whatever in my test application?

Question by:brosoft
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Author Comment

ID: 1322113
PS. I would love some project code for making a DLL with a class and then accessing it from another project with LoadLibrary() etc...  Thanks again.

Accepted Solution

fjsen earned 200 total points
ID: 1322114
Try linking with the .lib file generated by the first application.



Author Comment

ID: 1322115
If I link with the .lib, what is the point of having a dll?
Learn how to optimize MySQL for your business need

With the increasing importance of apps & networks in both business & personal interconnections, perfor. has become one of the key metrics of successful communication. This ebook is a hands-on business-case-driven guide to understanding MySQL query parameter tuning & database perf


Expert Comment

ID: 1322116
If you change the DLL code without change the interface, you don't need to recompile the client project.



Expert Comment

ID: 1322117
Use that dll as extension dll and export the class in this way.

class AFX_EXT_CLASS CMyClass : public CDialog


, then link this .lib with that calling application. then compile the application.
U won't get any errors.

Author Comment

ID: 1322118
So what is the point of a dll then?  If I just have to link the lib, then having a DLL is pointless.  I could just use a .lib file instead and statically link it to every file that I compile that needs the dll.  

I am trying to cut down on repetitive code and use one dll for all my programs to use the common functions.  Just using a lib would make it pointless... :(


Expert Comment

ID: 1322119
When creating a dll you will get a lib as well. This lib will hold the code to use the dll. Once you have linked your MFC app with this library who will be able to change the code of your dll without linking your app again. The only thing you have to keep in mind is that the names of the entry points, such as your class and its methods, should not be changed.

Author Comment

ID: 1322120
thanks, I figured it out.  Explicit DLL's are what we are talking about here, linking with the .lib and all that.

Implicit ones are the one's I wanted.  Where you grab a ptr to the function or class and then don't have to link with the .lib.


Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
If you use Adobe Reader X it is possible you can't open OLE PDF documents in the standard. The reason is the 'save box mode' in adobe reader X. Many people think the protected Mode of adobe reader x is only to stop the write access. But this fe…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Suggested Courses
Course of the Month12 days, 19 hours left to enroll

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question