- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I wonder if Shared Library is exacltly same as DLL in terms of its function. In Windows system, DLL is loaded when I readlly need it. That is, it is not automatically loaded when calling program is started(invoked). Is it same with Shared Library ? Acutally, I made a small program which may call or may not call - depending on the flow logic- a subroutine that is made as shared library. I am not sure if the shared library is always loaded into memory or only loaded when it is initally called. Any comment would be very much appreciated.
Moonkyu
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the Linux world, it's called a "shared object" (.so), but yes, it's very much like a DLL. Unlike a DLL, you can link directly to a .so and don't need a separate "export library".
However, even on Windows, a DLL is loaded automaticlaly when the program starts, whether or not you call any routines in it. The Microsoft linker does have a "delayed load" feature which you can enable, where a "stub" is linked in that dynamically loads the DLL when the routine is called. That behavior is not the default. I don't know if Linux has something similar.
However, even on Windows, a DLL is loaded automaticlaly when the program starts, whether or not you call any routines in it. The Microsoft linker does have a "delayed load" feature which you can enable, where a "stub" is linked in that dynamically loads the DLL when the routine is called. That behavior is not the default. I don't know if Linux has something similar.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page