Re: problem with require in combined lua/c++ project using VS2010
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
- Subject: Re: problem with require in combined lua/c++ project using VS2010
- From: Ross Berteig <Ross@...>
- Date: 2011年9月07日 14:16:59 -0700
At 12:13 PM 9/7/2011, Oskar Forsslund wrote:
ok, thats a relief then i guess =)
so if i want it to work should i try and rebuild the libraries
i need somehow or am I up the creek without a paddle?
Use Dependency Walker [1] to verify the implicit requirements of
every library you are including in your project that you do not
build yourself. The best practice is to make certain that every
DLL and your EXE depend on the same C runtime version, and where
appropriate, the same Lua VM (e.g. LUA51.DLL).
[1]: See http://www.dependencywalker.com/ for the latest build,
an earlier build is usually included with the distribution of
Visual Studio.
You will almost certainly have trouble if you mix CRT versions.
Linking the Lua VM more than once is even more likely to cause
trouble. (I would say "certain to cause trouble" except that it
is technically possible to contrive cases where it works to have
multiple CRT versions and/or multiple Lua VMs. It requires more
care and effort than is typical so don't try it unless you know
what you are doing.)
I've usually integrated a scripted run of Dependency Walker into
my release process, where I skim its log file for a run of my
program to verify that all loaded DLLs are either part of a
system distribution or are part of my release, and that none of
them are the non-shipping debug builds of the CRT. That has
saved me from embarrassment on several occasions.
The Lua for Windows distribution is handy because every binary
is built against a common Lua VM DLL and based on the same CRT
version. Unfortunately, that CRT version is no longer the
current Visual Studio release, and there are rumblings of a plan
to change Lua for Windows to use MinGW instead of VS2005 real
soon now.
If you are building a product in VS2010 and need to include
libraries that are shipped with LfW, my recommendation would be
to build those libraries and Lua itself with VS2010. If you run
into trouble building a specific library, then this list is
usually quick to provide good advice.
Ross Berteig Ross@CheshireEng.com
Cheshire Engineering Corp. http://www.CheshireEng.com/