Hello
I tried to integrate the Octave 3.0.1 distribution created using MSVC 2005 into
my own application in order to consume Octave functionality using the C++ API.
I found that I could not run my program in Debug mode because the following
error was generated:
"This application has failed to start because MSVCR80.dll was not found.
Re-installing the application may fix this problem."
After exhausting all alternatives known to me, I contacted Microsoft, who found
the solution to the problem (see below). The DLLs in the Octave Forge
distribution of v. 3.0.1 all had an RT_MANIFEST ID = 1, which signifies that
they are executables; DLL files must be given an ID = 2. When I changed them
by hand-editing the resource files, the problem disappeared.
However, it would be helpful to have both Debug and Release versions of the
Octave distribution available for download.
Finally, the Microsoft engineer was able to discern from looking at the
resource files that some of the DLLs in the VS 2005 distribution of Octave
3.0.1 were actually created using VS 2003. This is dangerous because passing
pointers among DLLs created using different versions of Visual Studio can
result in memory access violations. All of the Octave DLLs should be built
with the same VS version.
Thanks for taking the time to have a look at this.
Tom
From: Ravi Avanaganti [mailto:[EMAIL PROTECTED]
Sent: Monday, December 08, 2008 5:24 PM
To: Thomas M. Ortiz
Subject: Case SRX081208601113 : Important Links
Hi Tom,
As discussed, I am sending you the links that talk about the resource ID of the
DLL and exe.
http://blogs.msdn.com/dsvc/archive/2008/08/07/part-1-troubleshooting-vc-side-by-side-problems.aspx
CREATEPROCESS_MANIFEST_RESOURCE_ID (1): If an executable has a resource of type
RT_MANIFEST, ID 1, Windows will create a process default activation context**
for the process. The process default activation context will be used by all
components running in the process.
ISOLATIONAWARE_MANIFEST_RESOURCE_ID (2): This is used primarily for DLLs. It
should be used if the DLL wants private dependencies other than the process
default.
Following article is also good, that talks about common sidebyside errors
http://blogs.msdn.com/dsvc/archive/2008/08/07/part-2-troubleshooting-vc-side-by-side-problems.aspx
This link talks about the potential errors that occur when objects are passed
across DLLs compiled in different versions of Visual Studio
http://msdn.microsoft.com/en-us/library/ms235460(VS.80).aspx
I will call you again tomorrow to make sure if everything is working fine and
see if you have any follow-up questions.
Thanks & Regards
Ravi A
------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you. Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Octave-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/octave-dev