Solved

what windows unit instead of qt unit

Posted on 2006-10-20
17
646 Views
Last Modified: 2010-04-16
Dear expert,

I just deployed my application and it generates an error upon installing on other machines.

"this application has failed to start because qtintf70.dll was not found"

I found an explanation here:
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21342076.html?query=qtintf70.dll&clearTAFilter=true

indeed, automatically a unit called Qt was used somewhere. it should be replaced by a windows one. do you know which one?

thanks!


{*****************************************************************************}
{                                                                              
{ Pascal Binding for Qt Library                                                
{                                                                              
{ Copyright (c) 2000, 2001 Borland Software Corporation                        
{                                                                              
{ This file may be distributed and/or modified under the terms of the GNU    
{ General Public License version 2 as published by the Free Software          
{ Foundation and appearing at http://www.borland.com/kylix/gpl.html.          
{                                                                              
{ Licensees holding a valid Borland No-Nonsense license may use this file      
{ in accordance with the license and appearing in the file license.txt        
{                                                                              
{*****************************************************************************}
0
Comment
Question by:Ron_de_Weijze
  • 7
  • 4
  • 4
  • +1
17 Comments
 
LVL 28

Expert Comment

by:ciuly
Comment Utility
well, the fastest and simplest and sureest solution is to fireup your favorite file manager (total commander for example) and do a text search on the project dir and search for qt. it shouldn't find too many results unless you used some variables whatever that contain qt in their name. after finding the offending uses clauses, just modify it to your need.
0
 
LVL 19

Expert Comment

by:MerijnB
Comment Utility
you should probably only take the Q out of the offending units name (so QGraphics -> Graphics, and QControls -> Controls)
0
 
LVL 28

Expert Comment

by:ciuly
Comment Utility
ignore the qt search string. dunno what I was thinking. I had the impression that the unit starts with qt :D my bad.
so fire up total commander, check text for searching enter
uses\ +[q|Q].+
just the way it is above. check regexp and click start
this will find you all files that have a Q unit as the first unit in the uses clause. (and maybe some that also cotain "uses q"something :) )
if nothing is found then use
uses\ +.+,\ +[q|Q]+
just the way it is above. check regexp and click start
this will find you all files that have a Q unit in teh uses clause (and maybe some junk that have "uses blabla, qblabla")
0
 
LVL 1

Expert Comment

by:malsoft
Comment Utility
Ron,

I'm guessing that you're writing a cross-platform application as you're using the QT library on windows. That being the case, the simplest option for you is to deploy the qtinf70.dll along with your application (check the deploy.txt file in the base Delphi directory). If that's not something you are comfortable with, then you could try MerijnB's suggestion about changing the name of the units in the uses clause (removing the 'Q' prefix) - but watch out for QTypes (you should already have a Types unit included)
0
 

Author Comment

by:Ron_de_Weijze
Comment Utility
Thank you all!

The Qt unit called for in one unit must be called for by this unit B I used
http://delphi.about.com/library/code/ncaa112503a.htm

Qt is in the uses clause of unit A. When I take out the uses clause, I get the error:

"exception EClassNotFound in module aaaaa.exe at address bbbbb. Class TMRUMenuItem not found"

This has to do with a problem I put on this forum earlier:

http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_22002868.html?query=tmrumenuitem&clearTAFilter=true

Ciuly, I do not have total commander. I have searched the program directory and no file turned up. It must be in a dephi component.

Malsoft, I am not even writing for cross-platform! It just so happened that this unit was entered without my noticing it. I assume that you are saying that putting qtinf70.dll next to the exe file will stop this errormessage? (Just making sure.)

The unit is called 'Qt'. So taking out the 'q' just leaves the 't'. This file is not found.

Thanks so far!



0
 
LVL 19

Expert Comment

by:MerijnB
Comment Utility
(valt me nu pas op: aan de naam te zien Nederlander? hoi :))

So if you take out the unit QT it does compile but gives this error?
You are right with your assumption (I assume that you are saying that putting qtinf70.dll next to the exe file will stop this errormessage?) But I think it isn't really the solution you want.
0
 
LVL 1

Accepted Solution

by:
malsoft earned 500 total points
Comment Utility
Ron,

I have checked out the MRU component you say you are using and it does not use the QT cross-platform library at all. That said, I think you need to be looking at your own code units, or possibly other 3rd party components you may be using for the problem.

Firstly, I'd start by removing the QT reference altogether (you have stated that it was added into the uses clause of unit "A" previously), clearing out your compilation directory of any *.dcu files and the executable, rebuilding the application, then trying to trace where the problem occurs:

1) Does it compile correctly when you remove the QT reference?
2) If so, can you then run the application from outside the IDE on your development machine?
3) Are any errors reported at that point?
4) If all is working so far, can the application be run on the deployment machine?
5) If we see an error at this point, I think we need to start looking at the project's configuration to see if it is being built with runtime packages. If so, you'll need to either remove that option, or deploy additional files with the executable.

Lastly, just to make sure that QT has definately been removed from the uses clauses, can you go to "Project / View Source" in the IDE and make sure that the first unit in the uses clause is, in fact, Forms and not QForms. For now, ignore my earlier comment about deploying the qtinf70.dll, I assumed that you were developing cross-platform - my apologies.
0
 

Author Comment

by:Ron_de_Weijze
Comment Utility
(Leuk je te ontmoeten Merijn!)

I now found out that a workaround I thought would do no harm, does indeed do harm!
And the QT does not even play a role then!

Leaving out the QT unit and applying my workaround does make the program compile and run. Otherwise, I get the message "exception EClassNotFound in module aaaaa.exe at address bbbbb. Class TMRUMenuItem not found".

That workaround is (as described in the other problem on this forum, mentioned above):

When I close all files or restart Delphi, the first thing I need to do is open the menu component, its File-Reopen item and delete the paths to files I used, that are kept in the registry. Once I have done that, the problem is gone. And, as mentioned, QT that is supposed to be managing that (I guess), is not needed at all!





0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:Ron_de_Weijze
Comment Utility
Malsoft, you are very helpful!

1. Yes.
2. Yes.
3. No.
4. Not sure. It works on another machine not used for development. However, I used this testing procedure before I knew about the current problem. Perhaps you would want to try it for me: http://www.pmm.nl/test.exe
5. Still undetermined

0
 

Author Comment

by:Ron_de_Weijze
Comment Utility
Does http://www.pmm.nl/test.exe generate the errormessage "this application has failed to start because qtintf70.dll was not found" on any machine of yours?

Thanks for your feedback!
0
 
LVL 19

Expert Comment

by:MerijnB
Comment Utility
no problems here, I just checked to be sure, I do not have qtintf70.dll on my machine
0
 
LVL 1

Expert Comment

by:malsoft
Comment Utility
Ron,

I tried this on a fresh copy of Win2k Pro and it started without any problems and there's no copy of qtinf70.dll on that machine. Are you still getting the problem? Looks like MerijnB and myself can run it without the error you describe. Is there something we should be doing, like creating multiple files first (so the MRU component has something to work on)?
0
 

Author Comment

by:Ron_de_Weijze
Comment Utility
If the test exe does run without the use of the QT unit, then the installation should not abend any more either, but just to make sure, could you try it for me?

http://www.pmm.nl/demo/PMM06080.exe

0
 
LVL 19

Expert Comment

by:MerijnB
Comment Utility
like a charm!
0
 
LVL 1

Expert Comment

by:malsoft
Comment Utility
Works fine for me :)
0
 

Author Comment

by:Ron_de_Weijze
Comment Utility
Losing QT altogether made it work..
Thank you all very much!

Ron dW
0
 

Author Comment

by:Ron_de_Weijze
Comment Utility
Sorry guys,

I uploaded an 'installation file' which was just an executable. Forgive me. Would you mind trying again?

http://www.pmm.nl/demo/PMM06080.exe  This time it should really install the exe file and other files such as the help file.

There should hopefully be no errormessage of the kind this log started with, occurr during installation.

... and get your points here:

http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_22034799.html

Thanks again.

-R

0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now