473,625 Members | 3,318 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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 1601
"Bruce" <bw*****@nospam .nospam> wrote in message
news:O6******** ******@TK2MSFTN GP12.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******** ******@TK2MSFTN GP14.phx.gbl...
"Bruce" <bw*****@nospam .nospam> wrote in message
news:O6******** ******@TK2MSFTN GP12.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******** ******@tk2msftn gp13.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******** ******@tk2msftn gp13.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******** ******@TK2MSFTN GP14.phx.gbl...
"Bruce" <bw*****@nospam .nospam> wrote in message
news:O6******** ******@TK2MSFTN GP12.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
10301
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 some memory limit?
3
2466
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 to allow the Application to utilize 2-3GB of RAM, both through standard and /3GB /4GT /PAE switches and the like for the system and combinations of /LARGEADDRESS... etc. for the app config .. the App will always fail when it hits *1GB* on the
2
2845
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 DLLs and a test application (an .EXE). The .EXE is my startup application. All the DLLs are shared components. This means that they contain a key and are stored in the GAC. When I go to run the test application in the IDE, it will not execute...
5
1387
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 relies on external C code (GNU Scientific Library). That external code I added using Configuration Properties->Linker->Input->Additional Dependencies There, I specified two .lib files and the code compiles just fine. However, when it generates...
0
1464
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 am currently testing this and it fails. I have a native, unmanaged test application that links against my mc++ dll with a function entry point. Linking works fine, no errors. When I try to run in the debugger I see the output below (abreviated...
0
1881
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 loaded and unloaded causing a noticable delay before the item selects. After that its fine. The funny thing is, my set up is exactly the same as another program I have and it doesn't load anything! I created a stock MFC DLG app with a CListCtrl...
0
3221
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 converted/developed with VB.NET. What I want from debugging is to be able to step into the methods in the DLLs called from ASP scripts using Visual Studio .NET. Background: For typical script debugging issues, you can read and follow the two documents on...
8
1619
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, but a rough estimate of the number of classes and methods would be useful .... Thanks in advance. Mark
1
1488
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 executable's behavior is sporadic, and it will disappear. I think the app is calling a DLL that exists in the current directory, but since the flash drive is gone, it can't find it. so, i wanted to know if i could load the executable with all of...
0
8694
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8356
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 Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8497
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7184
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6118
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5570
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4193
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1803
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1500
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.