We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Problem with app that works only from within Delphi...(and Win 95)

reality
reality asked
on
Medium Priority
186 Views
Last Modified: 2010-04-06
I have encountered a rather odd problem using Delphi 1.0.

I have an app with:

DBF files for the data
bunch of standard controls (dbedit, tlist, tgrid, etc.)
Formula1 and First Impression VBX's


Now, here's the strange part:

I make a few function calls to the Formula1 DLL which work just fine, thank you very much, under Windows 95 OR when run from within Delphi (under Win 3.1). When running under Windows 3.1 alone, the app will not run at all - Windows reports the generic message "Cannot find file (or one of its components)etc."

Now, if I comment out any function calls to this DLL, everything works again.

What's so damned confusing is the fact that the app will run under Win 95 and from within Delphi...also, to add to the confusion, the same app used to work fine under Windows 3.1 before a few minor changes were made (nothing of consequence - a few label changes...).

Every DLL and VBX the app could possibly want is available to it (in the app's directory, in C:\WINDOWS\SYSTEM and also elsewhere in the search path).

Does anybody have any idea what could be the problem here? I might be able to find a workaround (might) but it seems to me that this is a symptom of a potentially dangerous problem...

Thanx in advance,
Comment
Watch Question

Did you put the DLL's in win95's system dir and in win311's system dir?
Try to make a new project and disable optimizations.

Author

Commented:
Edited text of question

Author

Commented:
Adjusted points to 75
Commented:
I believe I ran into a similar problem about a year ago.  I too had an app that ran fine on Win95 (the development platform) but not on Win31 (the target platform).

Look at how you're declaring the external DLL's. If memory serves me right, you must NOT include the ".dll" in the declaration, just use the file prefix.  (It's possible I have this backwards, so if you AREN'T using ".dll" then DO use it.)  

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.