Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: Deployment VC XP
Hello,
 
I'm trying to put a VC++10 app that I've used successfully in computers with windows XP professional with the service pack 2 installed.
 
Now it is mandatory to install the same * application to a windows XP computer without the service pack 2 installed and it seems that I can't install that service pack there. Cry | :((
 
* I can rebuild.
 
The problem I'm seeing here is that when I try to run that app in the computer without SP2 I get this error message:
 
"The procedure entry point EncodePointer could not be located in the dynamic link library KERNEL32.dll."
 
It seems that without SP2 installed this is quite normal... Frown | :(
 
Is it possible to use VC++10 to link the app and to make it work into that XP pro without SP2 computer?
 
I can also use VC++2005 in order to do it and I've already tried to rebuild all the solution, but then it still fails to load the appplication... it tells me:
 
"this application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem."
 
This was initially a project developed using VC8, then it got modified and a lot of upgrades using VC10.
 
I don't get why... all the libraries that are dependant are in the same folder than the exe file...
 
I'm completely lost now...
 
What should I take a look into?
 
Thank you in advance for your help! Thumbs Up | :thumbsup:
Posted 22-Jan-12 1:07am
Joan Murt82.9K
Edited 22-Jan-12 2:05am
v2
Comments
SAKryukov at 22-Jan-12 13:25pm
   
Why without SP2?!
--SA
Joan Murt at 22-Jan-12 13:28pm
   
Even if it sounds stupid, it is a computer with Windows XP embedded, it is the computer that controls a robot and therefore it is not as easy to update as it should as the manufacturers of the robot device need the OS in a really specific way to allow the robot software to work properly... so I can't update it... :((
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

System libraries (such as KERNEL32.dll) are distributed with the OS and updated as required when a Service Pack is installed. You have built an application that makes use of some feature that requires SP2, so the target machine needs to be at the same level. Alternatively, remove the dependency on this feature so your application is targetted at the lowest level of system it is to work on.
  Permalink  
Comments
Joan Murt at 22-Jan-12 7:57am
   
Thank you Richard, but this is not the case (at least as far as I've seen it)... The app was developed under xp and using vc8. Then I started to update a lot of minor things new edit controls, some changes on the dialog layouts, some name conventios updated... But nothing big.
Anyway it is not working as without sp2 the mfc used in vc10 doesn't works undewr xp without sp2.
Richard MacCutchan at 22-Jan-12 8:07am
   
but this is not the case
Well, this is exactly the case; as you have described.
Richard MacCutchan at 22-Jan-12 8:10am
   
Additional: See the minimum supported level of EncodePointer as defined here.
Joan Murt at 22-Jan-12 9:12am
   
I guess that what has happened is that after importing the code into VC10 then it automatically has
updated several parts of the solution... because I've discovered the EncodePointer today... :sigh:
 
Thank you!
SAKryukov at 22-Jan-12 13:25pm
   
Correct, a 5.
--SA
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Now it is mandatory to install the same * application to a windows XP computer without the service pack 2 installed and it seems that I can't install that service pack there.
 
I'd try to convince the customer to upgrade XP to service pack 3. MS has made a serious effort when it comes to improve the security of their OS. If those aren't installed your system will be open to what is now well known flaws that can easily be exploited.
 
Have a look at: Security: It’s Getting Worse[^]
 
The practice of never patching production systems makes automation systems particularly vulnerable. So you will be doing your customer a favor, and save yourself a bit of trouble.
 
Best regards
Espen Harlinn
  Permalink  
Comments
Kim Togo at 22-Jan-12 7:50am
   
My 5 Espen. Good points. Windows XP is over 10 years old now. Service Pack 3 for Windows XP is mandatory :-)
Espen Harlinn at 22-Jan-12 7:51am
   
Thank you Kim!
Joan Murt at 22-Jan-12 7:53am
   
Espen! I can't do that, the computer is an industrial system that moves a robot... Impossible to update due to protections and blocking systems from the manufacturer... :(
Espen Harlinn at 22-Jan-12 8:02am
   
Microsoft Visual C++ 2010 Redistributable Package requires Windows XP with Service Pack 3, see: http://www.microsoft.com/download/en/details.aspx?id=5555
Joan Murt at 22-Jan-12 9:13am
   
Then I will have to go back to the old version, use the VC8 to make all the changes again and at the end build the complete solution again... :( I'm afraid that I won't be able to update the robot OS...
Thank you!
Espen Harlinn at 22-Jan-12 9:22am
   
Try linking with the static runtime libraries before giving up on VC++ 2010 - this will probably require that you deploy your application as a single executable - i.e. you may need to convert any custom dll's that shares the memory manager to static libraries too.
Joan Murt at 22-Jan-12 9:29am
   
I've thought about doing that and I've tried it: I guess you mean to go to the project options and select "Settings\MFC usage" and put this parameter to USE MFC as a statically linked library. I've done that but it kept asking me the MFC libraries :O ... Is there any other thing that I should do? Thank you Espen...
Espen Harlinn at 22-Jan-12 9:37am
   
Have a look at:
'Configuration Properties->C/C++->Code Generation->Runtime Library'
Choose a non dll runtime variant
 
I'd also try to set:
'Configuration Properties->Platform Toolset' to v90
Joan Murt at 22-Jan-12 10:09am
   
the v90 seems to be the way to get what I need (at least it sounds like telling VC to use the VC8 MFC libraries) but it is telling me that I must be sure that the VC8 is installed there... and I can use it without a problem.... :O and of course if I choose the V100 then I'm getting the message: "the procedure entry point DecodePointer could not be located in the Dynamic link library KERNEL32.dll"... Which would be the fastest way to get the dialogs and the h and cpp files into a brand new project done in VC++8? I think that if I could do that then it would work without a problem... the right libraries and no worries...
Thank you again Espen! :thumbsup:
Joan Murt at 22-Jan-12 10:20am
   
I've tried to use the old project overwritting the files .h, .cpp and the resources. It has compiled and linked without a problem but it is not working... it generates the exe file but when I try to launch that file into the robot controller then I get a message telling me "this application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem."
...
Espen Harlinn at 22-Jan-12 12:11pm
   
Have a look at the executable using
http://www.dependencywalker.com/
just to see if you are missing something
 

Joan Murt at 22-Jan-12 13:26pm
   
Now it works: I've picked the original one, using the VC++8, then I've selected static and MT not MTDLL and voilá! thank you for your pointers Espen.
;)
Espen Harlinn at 22-Jan-12 14:11pm
   
Brilliant :)
SAKryukov at 22-Jan-12 13:31pm
   
Hi Joan,
 
This "impossible" part is absurd. It means you have wrong manufacturer, wrong policy, etc. If you have a closed system, if should be completely closed, without possibility to add an application. If you can add a application, you should be able to add an upgrade; consider it as a part of application.
 
You are not asking "how to deploy the application on a computer without a hard drive", right?
--SA
Joan Murt at 22-Jan-12 13:41pm
   
What can I tell, they do that in that way, like it or not... and they are currently the third company in robot sales in the world... the first one is ABB, the second one is Fanuc and the third one is KUKA... All of them are more or less closed... and I do think that this is stupid, but...
SAKryukov at 22-Jan-12 13:26pm
   
Good points, a 5.
--SA
Espen Harlinn at 22-Jan-12 14:12pm
   
Thank you, Sergey!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 George Jonsson 215
1 Kornfeld Eliyahu Peter 169
2 OriginalGriff 120
3 PIEBALDconsult 110
4 BillWoodruff 85
0 OriginalGriff 6,165
1 DamithSL 4,658
2 Maciej Los 4,087
3 Kornfeld Eliyahu Peter 3,649
4 Sergey Alexandrovich Kryukov 3,294


Advertise | Privacy | Mobile
Web02 | 2.8.141220.1 | Last Updated 22 Jan 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100