Ranorex

C++ runtime libraries loaded incorrectly

 
Post new topic   Reply to topic    Ranorex Forum Index -> General Questions
View previous topic :: View next topic  
Author Message
Marianne Jacobsen



Joined: 26 Oct 2007
Posts: 15

PostPosted: 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
View user's profile Send private message
Marianne Jacobsen



Joined: 26 Oct 2007
Posts: 15

PostPosted: Wed May 21, 2008 2:56 pm    Post subject:
On Ranorex 1.2 the error is not present.
Back to top
View user's profile Send private message
Support Team
Site Admin


Joined: 07 Jul 2006
Posts: 435

PostPosted: 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
View user's profile Send private message Visit poster's website
Marianne Jacobsen



Joined: 26 Oct 2007
Posts: 15

PostPosted: 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
View user's profile Send private message
Support Team
Site Admin


Joined: 07 Jul 2006
Posts: 435

PostPosted: Fri May 23, 2008 11:09 am    Post subject:
FindControlName() uses RanorexSpy.dll which depends on the CRT 8.0 runtime.

Please try to install the VC++ Runtime 8.0 SP1 Redist Package

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyI D=200b2fd9-ae1a-4a14-984d-389c36f85647

Michael
Ranorex Team
Back to top
View user's profile Send private message Visit poster's website
Marianne Jacobsen



Joined: 26 Oct 2007
Posts: 15

PostPosted: 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
View user's profile Send private message
Marianne Jacobsen



Joined: 26 Oct 2007
Posts: 15

PostPosted: 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
View user's profile Send private message
Support Team
Site Admin


Joined: 07 Jul 2006
Posts: 435

PostPosted: 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
View user's profile Send private message Visit poster's website
Marianne Jacobsen



Joined: 26 Oct 2007
Posts: 15

PostPosted: 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
View user's profile Send private message
Marianne Jacobsen



Joined: 26 Oct 2007
Posts: 15

PostPosted: 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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Ranorex Forum Index -> General Questions All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum