473,396 Members | 2,057 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Is there a Limit to the number of DLLs that can be loaded by 32 bit Applicatons on Windows 98?

I thought that I had read somewhere before about a limit to the number of
DLL's that could be loaded by a 32 bit application when it is run on Windows
98/ME operating systems.

But I can't seem to find the document in MSDN.

Our application uses Crystal Reports 9 and we have issues on 98 SE and ME
that seem to be dependent on the number of DLL's that are currently loaded
by the application.

--
Thanks,
Bruce
Nov 17 '05 #1
4 1589
"Bruce" <bw*****@nospam.nospam> wrote in message
news:O6**************@TK2MSFTNGP12.phx.gbl...
I thought that I had read somewhere before about a limit to the number of
DLL's that could be loaded by a 32 bit application when it is run on
Windows 98/ME operating systems.

But I can't seem to find the document in MSDN.
Well, you won't find something that says "you can load at most 'n'
libraries" because there is no such hard and fast rule.
Our application uses Crystal Reports 9 and we have issues on 98 SE and ME
that seem to be dependent on the number of DLL's that are currently loaded
by the application.


What kind of issues?

Regards,
Will
Nov 17 '05 #2
Thanks for the reply.

Our application is a VC++ 7.1 unmanaged application. We have some new pieces
that we call that were written in C# that we call through a C++ MFC mixed
mode DLL. This functionality is delay-loaded so we don't have the dot net
overhead unless the functionality is actually used. Although we get the same
symptoms if delay-loading of this dll is disabled.

We also have a mail module in our application that uses mapi to send mail.

The symptoms that we get vary. But they do seem to be related to the number
of DLL's that are currently loaded in the application. Generally it will be
that crystal reports says it can't find on of it's u2*.dll's, unable to
create the report viewer ActiveX control or login errors connecting to the
database.

Non of these errors ever occur on W2K or WXP, only on W98SE and WME.

The reports work fine until a feature is accessed that loads more dll's into
the process space, such as loading mapi in the unmanaged C++ code or doing
certain things in the C# code such as getting a list of SQL servers using
SQLDMO.

Once the failing condition is reached, it cannot be corrected without
exiting the application, sometimes even rebooting is required.

I have done extensive remote debugging on the computer with a debug build
and the only commonality that I can come up with is the number of dll's that
are currently loaded when the error occurs.

Also, as long as I stay away from the program's functionality that loads the
extra dll's, the reports work fine no matter how many times I run them.

--
Thanks,
Bruce
"William DePalo [MVP VC++]" <wi***********@mvps.org> wrote in message
news:eG**************@TK2MSFTNGP14.phx.gbl...
"Bruce" <bw*****@nospam.nospam> wrote in message
news:O6**************@TK2MSFTNGP12.phx.gbl...
I thought that I had read somewhere before about a limit to the number of
DLL's that could be loaded by a 32 bit application when it is run on
Windows 98/ME operating systems.

But I can't seem to find the document in MSDN.


Well, you won't find something that says "you can load at most 'n'
libraries" because there is no such hard and fast rule.
Our application uses Crystal Reports 9 and we have issues on 98 SE and ME
that seem to be dependent on the number of DLL's that are currently
loaded by the application.


What kind of issues?

Regards,
Will

Nov 17 '05 #3
"Bruce" <bw*****@nospam.nospam> wrote in message
news:eo**************@tk2msftngp13.phx.gbl...
Thanks for the reply.
You are welcome.
The symptoms that we get vary. But they do seem to be related to the
number of DLL's that are currently loaded in the application. Generally
it will be that crystal reports says it can't find on of it's u2*.dll's,
unable to create the report viewer ActiveX control or login errors
connecting to the database.

Non of these errors ever occur on W2K or WXP, only on W98SE and WME.

The reports work fine until a feature is accessed that loads more dll's
into the process space, such as loading mapi in the unmanaged C++ code or
doing certain things in the C# code such as getting a list of SQL servers
using SQLDMO.


A DLL is just a library that gets bound late.

Loading one does require resources - like virtual memory, and "things" do
happen when one is loaded (i.e. any DLL can have a DLLMain() that does
non-trivial or even illegal things. Some DLLs allocate thread-local storage
(see TlsAlloc() et al) and there is a limit of 80 TLS slots on 98/Me. So,
what I am saying is not that you are not exhausting some finite resource,
just that there is a priori no upper bound to the number of DLLs that you
can load and be guaranteed to have sufficient resources below, and run out
above.

Regards,
Will

Nov 17 '05 #4
Hi Bruce,

I haven't come across your particular problem, but it doesn't surprise me.
We had a similar problem that only happened in Win9x and finally decided it
was due to holding too many active window handles (delphi's default
paradigm). We changed the program to only create windows as needed and the
problem went away. Completely undocumented and I imagine you could well be
hitting some other undocumented resource limit.

Cheers

Doug Forster

"Bruce" <bw*****@nospam.nospam> wrote in message
news:eo**************@tk2msftngp13.phx.gbl...
Thanks for the reply.

Our application is a VC++ 7.1 unmanaged application. We have some new
pieces that we call that were written in C# that we call through a C++ MFC
mixed mode DLL. This functionality is delay-loaded so we don't have the
dot net overhead unless the functionality is actually used. Although we
get the same symptoms if delay-loading of this dll is disabled.

We also have a mail module in our application that uses mapi to send mail.

The symptoms that we get vary. But they do seem to be related to the
number of DLL's that are currently loaded in the application. Generally
it will be that crystal reports says it can't find on of it's u2*.dll's,
unable to create the report viewer ActiveX control or login errors
connecting to the database.

Non of these errors ever occur on W2K or WXP, only on W98SE and WME.

The reports work fine until a feature is accessed that loads more dll's
into the process space, such as loading mapi in the unmanaged C++ code or
doing certain things in the C# code such as getting a list of SQL servers
using SQLDMO.

Once the failing condition is reached, it cannot be corrected without
exiting the application, sometimes even rebooting is required.

I have done extensive remote debugging on the computer with a debug build
and the only commonality that I can come up with is the number of dll's
that are currently loaded when the error occurs.

Also, as long as I stay away from the program's functionality that loads
the extra dll's, the reports work fine no matter how many times I run
them.

--
Thanks,
Bruce
"William DePalo [MVP VC++]" <wi***********@mvps.org> wrote in message
news:eG**************@TK2MSFTNGP14.phx.gbl...
"Bruce" <bw*****@nospam.nospam> wrote in message
news:O6**************@TK2MSFTNGP12.phx.gbl...
I thought that I had read somewhere before about a limit to the number of
DLL's that could be loaded by a 32 bit application when it is run on
Windows 98/ME operating systems.

But I can't seem to find the document in MSDN.


Well, you won't find something that says "you can load at most 'n'
libraries" because there is no such hard and fast rule.
Our application uses Crystal Reports 9 and we have issues on 98 SE and
ME that seem to be dependent on the number of DLL's that are currently
loaded by the application.


What kind of issues?

Regards,
Will


Nov 17 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Leandro | last post by:
There is an upper memory limit in Python? I have 2GB RAM and 2 processors Xeon 2.4 - (Windows XP), but I just can use 1.2G of memory, after this python crashes. Does someone know if python has...
3
by: Rich | last post by:
Hello all I have an application that is segmented into various Dlls, one of which contains caching mechanisms that create very large in-memory data structures. No matter what I do to attempt...
2
by: Johann Blake | last post by:
I can hardly believe I'm the first one to report this, but having gone through the newsgroup, it appears that way. I would like to open a solution in the VS.NET IDE that consists of multiple...
5
by: Joerg M. Colberg | last post by:
My apologies if this is a trivial problem. I have been trying to solve this for a few days now and I just can't get it done. Here's what I have. I have a C++ project in VisualStudio.NET whose code...
0
by: Eric Twietmeyer | last post by:
Hello, Am I mistaken in thinking that if I have a mc++ dll that I should be able to link against it (so long as it has exported symbols via declspec(dllexport)) in an unmanaged application? I...
0
by: Ryan Albarelli | last post by:
Here's one I've spent the last 6 hours trying to figure out... I have a CListCtrl derived class. The first time I click an item in the list to select it, I see a lot of multimedia dll's being...
0
by: ZMan | last post by:
Scenario: This is about debugging server side scripts that make calls to middle-tier business DLLs. The server side scripts are legacy ASP 3.0 pages, and the DLLs are managed DLLs...
8
by: Mark | last post by:
I have it in my head that I saw a marketing document from Microsoft with the total number of classes and methods in the .NET Framework. Something like 70,000 methods? I don't need precise numbers,...
1
by: davidmurray1 | last post by:
I have a C++ app on my flash drive that i am running, but often times, i must take the flash drive out of the computer and use it elsewhere while the executable continues to run. however, the...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.