Hi, I just upgraded from 0.9.95 to 0.9.97 (KDiff3-32bit-Setup_0.9.97.exe) but the new executable won't start.
Which means that some prcedure enty point was not found. The system log says:
Anwendungspopup: kdiff3.exe - Einsprungpunkt nicht gefunden: Der Prozedureinsprungpunkt "_Z23qt_qFindChildren_helperPK7QObjectRK7QStringPK7QRegExpRK11QMetaObjectP5QListIPvE" wurde in der DLL "QtCore4.dll" nicht gefunden.
Must I install Qt by hand and find a version that cooperates with kdiff3?
Very odd.
The dlls are part of the installation (see your installation directory e.g. c:\Program Files\KDiff3\bin).
For such a obvious problem I would have expected more bug reports.
Do you have a second PC to test?
Can anyone else confirm this?
Joachim
I just retested (on Win8, 64 bit)
What Windows version are you using?
You might want to try Dependency Walker
(http://www.dependencywalker.com/depends22_x86.zip)
to analyse the problem in detail. After starting it open the kdiff3.exe and click the QtCore4.dll. Lookout for error messages.
If you also have 64-bit OS then use "C:\Program Files (x86)\KDiff3\kdiff3.exe".
Joachim
Joachim Eibl schrieb:
I installed 0.9.97 atop 0.9.95 which is in a non-standard path, namely
E:\KDiff3
Is this a problem? Maybe its confused because the DLL is not ni the
PATH? AKAIK MS Windows looks at the current directory (the one where
the .exe resides) to find DLLs?
No. Using depends complains about APPHELP.DLL alongside with
Error: At least one module has an unresolved import due to a missing
export function in an implicitly dependent module.
Warning: At least one delay-load dependency module was not found.
Error: At least one module has an unresolved import due to a missing
export function in a delay-load dependent module.
This is confusing because an update for a bugfix version (the major
version (0) and the minor version (9) are the same) is not supposed to
add new features or drag new libraries, does it?
Johann
Depends also shows you which Qt-dlls are actually being loaded with KDiff3. (Have a look at the full paths. Perhaps these are other Qt-dlls instead of those shipped with KDiff3.)
The different installation directory should be no problem. But KDiff3 now comes with a kdiff3.exe.manifest file to locate the Qt-dlls. You can try to delete this and move the dlls (QtCore4.dll, QtGui4.dll, libgcc_s_dw2-1.dll, mingwm10.dll) from the bin subdirectory into the same dir next to the kdiff3.exe.
(Or just move the kdiff3.exe into the bin-dir. Whatever you prefer.)
Another hint: The manifest system is often very capricious. If the modification time of the kdiff3.exe is older than of the kdiff3.exe.manifest then Windows often has a problem and can't load the program.
Regarding the version numbering of KDiff3 - don't assume policies that other programs adhere to. Since quite a while I just increase the last (minor) position and add features nevertheless, but after 0.9.99 I will go to 1.0.0, and then - who knows I'll start off like Firefox only counting major numbers :-)
Joachim
Joachim Eibl schrieb:
Ah yes. Thanks for the pointer. The Qt stuff is dragged from mikTeX for
some reason.
The manifest machinery appears to be broken.
Touching manifest did not help.
What works is moving the DLLs up. Moving kdiff3.exe down would imply
that I adjust the registry, doesn't it? For example the "KDiff3"
context menu in explorer would not find kdiff3.exe any more?
The Firefox versioning is scrap. If a software that is as complex as
Firefox does not provide bug-fix releases, then that's a major loss of
quality.
Experience proves that you cannot have new features without new bugs.
Thus, for critical and complex software, bug-fix releases are inevitable.
I am contributing to GCC, and I guess nobody would accept GCC if there
were no bug fixes without new features that introduce new bugs...
If kdfiff3 suffers from a developer shortage it might be warranted not
to support bug-fix only releases.
Just to adhere to the Firefox version management and bug policy because
Firefox is popular, is no argument that counts, IMHO.
Johann
p.s.: Depends still complains about the missing APPHELP.DLL but kdiff3
appears to work.
The dependencies are:
I meant that the exe should be newer. Please "touch" kdiff3.exe.
But could you please also test if it works if miktex is not in the path?
Yes. This was not so good advice.
Version numbering: Yes, developer shortage is a fact.
Apphelp.dll: Some dlls are pulled in for all programs because they are explicitely listed in the registry. But apphelp.dll is not from KDiff3. (Seems to be from Microsoft if you search the net.)
Joachim
Last edit: Joachim Eibl 2012-12-19