I got the SVN to compile fine with the instructions, but after
copying the .exe
over lyxc.exe of a completed 1.4.4 install, a dialog appears

"Runtime Error R6034,
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information."

In the installer you used to install LyX 1.4.4 "lyxc.exe" is the real lyx.exe while the "lyx.exe" there is a wrapper for the lyxc.exe. Confusing? - indeed.
You can reinstall LyX 1.4.4 using this installer:
http://wiki.lyx.org/Windows/LyXWinInstaller

Then you can simply replace the lyx.exe with the one you compiled.

regards Uwe

I know this problem. The solution is pretty, strange.
I mean strange, because it's one of the M$ disgusting thing...
And it can't be solved even you install 1.5rc1 and replace the
lyx.exe and tex2lyx.exe with the one you just compiled.

The root of this problem is that the LyX installer ships with an
old version of c++ lib (msvcr80.dll and msvcp80.dll). However,
the VC++ 2005 express edition with SP1 has newer version of the
two libraries. So, if lyx is compiled as recommended
in INSTALL.Win32, the lyx.exe and tex2lyx.exe ask for newer version
of DLLs, and M$ refuses to link them with older version of DLLs
that is shiped with the installer (either for 1.4.x and 1.5).
So, if you just replace the .exe files, it won't run at all.
You must replace the DLLs as well, with the newer version.

How to find the newer version of DLLs? It's another M$
disgusting thing... M$ install them in the system dir,
and managed by the compatibility patch component.
So, if you search the Windows dir, you will find
several copies of the same name (msvcr80.dll and msvcp80.dll).
You must select the correct ones, and copy them out
to overwrite the ones in your LyX bin dir.

You think your install will work with above two steps?
No! We have another M$ disgusting thing to prevent it
from excuting.........
Please check your LyX bin dir, you will find several
DLLs other than the two M$ disgusting DLLs. Most of
them are linked with older version of the two M$
DLLs. If you replace the M$ DLLs with newer version,
they won't be loaded. But lyx.exe needs some of them.
So, lyx.exe still can't run. You have to use the verion
of these DLLs linking with the newer version of M$ DLLs.
Lucky you can find them in the LyX devel dir tree, if
you properly compiled out the lyx.exe and tex2lyx.exe.
Use these files to replace the ones in LyX bin dir.

OK. Until now you may successfully run lyx.exe.
I mean "may" because you may also fail due to
other M$ disgusting things... And, more importantly,
you have to replace the Resources dir with the one you
just build from the lyx source code. Or else lyx.exe
may behave strange. You need to do this even if you
install 1.5rc1 and replace the .exe with your built one.
Because some scripts are changed frequently.

OK, so far I have a suggestion to the installer.
May we ship with newer version of M$ DLLs?
It costed me two whole days to find the problem
and figure out the solution... If we ship with
newer version of the two DLLs, we may have less
chance to meet this problem.

Finally, I really hate the disgusting M$
compatibility patch mechanism. It causes
much more problem than it can resulve...

Regards,
Hangzai

Reply via email to