Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7166045
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T14:20:59+00:00 2026-05-28T14:20:59+00:00

I have compiled a library that I have created with MinGW into an existing

  • 0

I have compiled a library that I have created with MinGW into an existing application using Borland 6 (I know its old but that’s what it was made with). I have used implib to create the .lib file and imported it into my project. I have also added the paths to the dll and necessary header files.

When I try to compile I get a pile of Unnresolved external type errors. Have I missed out any steps of the importing process? Assuming I haven’t and the issue is something like name-mangling how do I go about writing the interface in such a way that name mangling won’t matter. I know it involves extern C but thats about the limit of my knowledge. There are only two classes that need to be accessed from outside the dll the remainder are all only used internally. I’m not sure how to use extern C with something that is entirely built with classes. I’m stil hopeful that it’s my importing with borland 6.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T14:21:00+00:00Added an answer on May 28, 2026 at 2:21 pm

    extern “C” cannot be used for classes, only for free functions. So you have an option of writing a “C” interface to your class, where each function takes a pointer to your class and you would probably have create and destroy functions.

    This is a way it is typically done, and your class could be forwardly declared as struct, which is the same as class, and then could even be used by applications written in C. You would normally put extern “C” only when __cplusplus is defined so there are normally #ifdef guards around it.

    There is another option, if you only want your class to be used by C++ and you don’t want to have to write a C interface for all your class methods.

    Users of the DLL use an abstract interface and still use Create and Destroy methods (with extern “C”) to create a pointer to the abstract interface, but then use the pointer in the normal C++ way. Of course ideally you will wrap this pointer in a smart pointer, e.g. a boost shared_ptr with a custom deleter that calls the Destroy method. (Users of the library should do that but you can provide a headers-only interface to do it).

    There are a few other issues you would need to beware of if doing this, e.g. anything to do with run-time type information is likely to not work on the user-side, including exceptions. And once again your library could provide “open-source” C++ wrappers (compiled on the client side) to handle this in a more C++ way. A sort-of pImpl.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I created an application core, in C++, that I've compiled into a static library
I have created an application (compiled any cpu) that use a lib also compiled
I have compiled the NTL inifite precision integer arithmetic library for c++, using Microsoft
Say, for example, I have many web applications using the same class library compiled
I have a big project compiled into libProject.so-file (shared library), I made some modules
I have compiled a .NET application using Any CPU option. This .NET application uses
I,m using gcc compiler(MinGW) on Windows XP.I created a .dll library libdir.dll than I
I have an monotouch application that includes an objective-c static library. The application runs
I have created a windows phone 7 custom class library, in that I have
I need to dynamically link a library that I have created. I'm not exactly

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.