| View previous topic :: View next topic |
| Author |
Message |
Marianne Jacobsen
Joined: 26 Oct 2007 Posts: 15
|
Posted: Wed May 21, 2008 1:46 pm Post subject: C++ runtime libraries loaded incorrectly |
|
I have a problem which I do not know whether comes from Ranorex or not. I need a little help.
I'm using the evaluation version 1.4.
By mistake I used the "FindControlName" method instead of accessing the control with "Element.FindChild" method.
By doing this I consistently get an C++ runtime error. By debugging I can see that the error comes from FindControlName call. If I use the Element approach instead I get no error. I'm trying to access a custom .Net control.
I have no C++ code in my project - only C#. |
|
| Back to top |
|
 |
Marianne Jacobsen
Joined: 26 Oct 2007 Posts: 15
|
Posted: Wed May 21, 2008 2:56 pm Post subject: |
|
| On Ranorex 1.2 the error is not present. |
|
| Back to top |
|
 |
Support Team Site Admin
Joined: 07 Jul 2006 Posts: 435
|
Posted: Thu May 22, 2008 9:19 pm Post subject: |
|
| Quote: |
| I have no C++ code in my project - only C#. |
But RanorexNet.dll needs the unmanaged C++ RanorexCore.dll.
This problem can happen if you use a wrong version of the RanorexCore.dll.
Please check the location and version of the RanorexCore.dll.
Jenö
Ranorex Team |
|
| Back to top |
|
 |
Marianne Jacobsen
Joined: 26 Oct 2007 Posts: 15
|
Posted: Fri May 23, 2008 10:18 am Post subject: |
|
I've checked the version number of the ranorexcore.dll file and it says 1.4.0.5 and the file resides in the same directory as my executable.
Can this problem be because I'm trying to test an application which has been compiled with Visual Studio 2008? |
|
| Back to top |
|
 |
Support Team Site Admin
Joined: 07 Jul 2006 Posts: 435
|
|
| Back to top |
|
 |
Marianne Jacobsen
Joined: 26 Oct 2007 Posts: 15
|
Posted: Wed May 28, 2008 9:43 am Post subject: |
|
I've checked all of the dll's and they are the correct version. The application I'm testing has been compiled with Visual Studio 2008 and uses both the 2005 and the 2008 C++ runtime. I've installed both runtimes and the service packs - error is still present.
If I look up the R6034 errorcode on MSDN it says something about a missing manifest file - but how can I know which application is missing the manifest? Would that be the application being tested, my executable or ranorex?
As far as I understand Windows should be able to handle side-by-side sharing of assemblies without much trouble.
Application under test (new version - VS2008 compiled) + Ranorex 1.2 = works
Application under test (old version - VS2005 compiled) + Ranorex 1.2 = works
Application under test (old version - VS2005 compiled) + Ranorex 1.4 = works
Application under test (new version - VS2008 compiled) + Ranorex 1.4 = error
The error might be in my code or test application but how can I identify this and correct it?
Thank your for you help. |
|
| Back to top |
|
 |
Marianne Jacobsen
Joined: 26 Oct 2007 Posts: 15
|
Posted: Wed May 28, 2008 12:23 pm Post subject: |
|
I've figured out that I get the error by just spying on the controls (with RanorexSpyPro) in the application under test. Which means that the error must be in either Ranorex or my application under test.
I've tested on several different machines and the error persists.
Edit: I've examined the matter further and it seems that the error also comes if I use the RanorexSpy 1.2 - which tells me that it's my application under test that causes the failure.
Thank you for your time |
|
| Back to top |
|
 |
Support Team Site Admin
Joined: 07 Jul 2006 Posts: 435
|
Posted: Wed May 28, 2008 3:11 pm Post subject: |
|
| Quote: |
| Application under test (new version - VS2008 compiled) + Ranorex 1.4 = error |
Does the error happen only if you compile the application with VS2008 and you use the function FindControlName?
Is this correct?
What happens if you compile with VS2008 but you do not use the function FindControlName?
Jenö
Ranorex Team |
|
| Back to top |
|
 |
Marianne Jacobsen
Joined: 26 Oct 2007 Posts: 15
|
Posted: Wed May 28, 2008 4:06 pm Post subject: |
|
It does fail consistently with the FindControlName method but I've seen it fail also when I'm not using FindControlName (eg. Form.Element.FindChild).
I will try to get the developers of the test application to compile a VS2005 version which is exactly the same as the one compiled in VS2008 - just to see if the error really has something to do with Visual Studio 2008. |
|
| Back to top |
|
 |
Marianne Jacobsen
Joined: 26 Oct 2007 Posts: 15
|
Posted: Fri May 30, 2008 2:10 pm Post subject: |
|
I've solved the problem with the C++ 2008 runtime.
It was the manifest that caused the problem. I made a manifest for RanorexCore.dll, RanorexSpy.dll and one for my own application. Using these manifests I no longer get the error.
The manifests all look like this:
Code: click into code to enlarge
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Anybody else who has problems with testing an application build under Visual Studio 2008 may have luck using this manifest.
Thank you for your time. |
|
| Back to top |
|
 |
|