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

Reply via email to