Solved

what windows unit instead of qt unit

Posted on 2006-10-20
17
650 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:2266180
ID: 17772565
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
ID: 17772698
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:2266180
ID: 17772754
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
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 
LVL 1

Expert Comment

by:malsoft
ID: 17772832
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
ID: 17772879
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
ID: 17772901
(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
ID: 17773149
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
ID: 17773191
(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
 

Author Comment

by:Ron_de_Weijze
ID: 17774473
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
ID: 17776445
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
ID: 17779020
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
ID: 17779294
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
ID: 17779459
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
ID: 17779884
like a charm!
0
 
LVL 1

Expert Comment

by:malsoft
ID: 17780233
Works fine for me :)
0
 

Author Comment

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

Ron dW
0
 

Author Comment

by:Ron_de_Weijze
ID: 17791578
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

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Dynamically Created Query 3 55
update joined tables 2 45
PHP preg_replace code convert to Delphi 14 55
Twebbrowser in Fire monkey android scrolling to bottom 1 29
Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
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…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

776 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