Fog Creek Software
g
Discussion Board




Compatibility with Windows XP

I have a private installation of all the dependencies in a private folder within my App.path and they are also registered from there.

My app currently runs on Win2000 Pro and Win NT (although some features will not work on NT like the layered windows and alpha blends) and it is not recommended for Win 9x.

What do I need to do to ensure that it works on Windows XP as well. My client has suddenly said that he expects there would be some XP systems too.

Besides the private installation of DLLs for the application, what else must I do? My instincts tell me that if it runs on Win 2K it will run on XP with my private dlls, the only grey area I see is that for report generation and some other functions, I use MS Office 9.0 dlls (office 2000), and I fear they will work with Office XP or not. Those who have experience, please advise.

Sathyaish Chakravarthy
Monday, January 12, 2004

The test of the pooding is in the eating, so may be I'll discover what there is to it when I actually port. But for now I know that my app is not tied down to any specific software vendor or any legacy software, nor is it OS specific (except for the alpha blending and layered windows and a few aspects on which NT based systems vary from the 9x systems such as it uses psapi.dll which has entry points that are not found in 9x in psapi but are found in kernel32 because 9x does not have psapi etc.) and since XP is an evolution of 2000, I think it should work. However, if some of you have burnt a finger at it, please caution me.

Sathyaish Chakravarthy
Monday, January 12, 2004

LOL - pooding

I pitty the fool, who has to live on mars
Monday, January 12, 2004

Sorry for the typo - pudding it was.

Sathyaish Chakravarthy
Monday, January 12, 2004

I **pitty** the fool...

Sathyaish Chakravarthy
Monday, January 12, 2004

I'm not calling you a fool Sathyaish, I'm making fun of George Bush's political stunt.  Sorry if you took it the wrong way.

Blank
Monday, January 12, 2004

Yes pity is spelled wrong on purpose.

Blank
Monday, January 12, 2004

Really just thought that spelling of pudding was funny.  Never saw it spelled that way before heh.

Blank
Monday, January 12, 2004

>I'm not calling you a fool Sathyaish, I'm making fun of George Bush's political stunt.  Sorry if you took it the wrong way.


I apologize too. Forget it.

Sathyaish Chakravarthy
Monday, January 12, 2004

Well, I'm offended - take it back!!!

George Bush
Monday, January 12, 2004

Just as soon as you take your troops back, George.


Monday, January 12, 2004

Dear Mr. President:

Welcome to politics.

Regards,

AnyMouse

P.S.  You think I'm joking.  I'm not.

Anymouse
Monday, January 12, 2004

My favorite Dubya Joke:

Somewhere in Texas, there is a village missing an idiot.


Monday, January 12, 2004

Some things we ran into for a VB6 app originally built for NT was:

1) Registry Keys Permissions - XP is more secure compared to NT

2) Excel automation can differ a little if the user has Office XP or Office 2003 installed.

3) We had some short file name vs. long file name issues when shelling out to other apps (~ tilde issues).

4) SU (Super User) .bat files security issues with "seeing" a user's current mapped drives.

GenX'er
Monday, January 12, 2004

The registry entries is more of a network issue, and I've had to deal with that in the recent past for the same client. Now they have given all their users Power User rights so they will be able to use applications that shall be allowed to modify their registry.

Excel, Word and Power Point automation is what concerns me most. I will be trying to use Office 9.0 dlls on XP early tomorrow morning and see if there are any differences. What must I do if XP refuses to run the 9.0 version dlls, without breaking backward compatibility for Windows 2000 users?

Also, thanks for the short file name tips. But what exactly did you face? Did XP object to long file names? And I did not get your .bat file security issues too. Could you please shed some light?

Sathyaish Chakravarthy
Monday, January 12, 2004

You should be using late-binding for Office Automation. That way it will use whatever version of Office is installed.

From my experience Microsoft is very good at keeping Office automation backwards compatible.  If you write it using Office 2000 then there is a very good change it will run just fine under Ofiice 2003, unless you are using some arcane functions.

Nothing like a live test to prove it though...

DJ
Monday, January 12, 2004

Yes, I agree that late binding is the way to go. Makes things a lot easier. Still, I would test fullt and make sure all Office Automation constants work correctly.

We had some issues with the Program Files directory having a space in short file vs. long file names. There is an API call that converts the short name to long - this fixed the issue.

We have a launcher program written in VB that executes .bat files which registers DLL's on a client machine. The SU (Super User) command allows a .bat file to be run with Admin rights - this way the DLL can be registered - users don't normally have those permissions in our company. The most updated Dll's are on a file server. However under XP, when the .bat file was executed under the SU command by VB shell command - the current user's mapped drives were unavailable. We needed to reference the fully qualified network name (storing the server name that this user connects to as an environment variable) instead of just the mapped drive letter.

Hope that helps.....

GenX'er
Monday, January 12, 2004

Sathyaish, better security than giving all users power user rights is to install the compatibility template, which was designed precisely to allow users to run applications that needed to write to the registry.

Stephen Jones
Monday, January 12, 2004

"Somewhere in Texas, there is a village missing an idiot."

That's OK, Texas has plenty more to go around.


Monday, January 12, 2004

I have always wondered how a nation that produced edison, bill gates and all those nobel laureates can also produce george bush.

Can some american shed light on this?

An Indian
Monday, January 12, 2004

In the same way that the nation that produced Ghandi also produced idiots that are often at the brink of war with their neighbours.

uncronopio
Monday, January 12, 2004

... genetic and environmental diversity I guess. A friend of mine supports the idea that the proportion of idiots is constant across cultures.

uncronopio
Monday, January 12, 2004

Actually it was South Africa that produced Ghandi...

Simon Lucy
Monday, January 12, 2004

Or maybe England... It is hard to isolate a single element or experience that "makes" or "produces" a person. Anyway, the real question is: Is Gandhi compatible with Windows XP?

uncronopio
Monday, January 12, 2004

Regarding Office 2000 compatibility, just make sure that your project references the type library for the oldest version of Office that your application supports.  (In your case, the Office 9.0 library for Office 2000 compatibility.)  The later versions of the Office type library are backwards compatible to earlier versions, so an application developed for Office 2000 should work fine on Office XP and Office 2003. 

I'm developing an app for Word 2000 and higher, and it works fine with more recent versions of Office.  Of course, you should test rigorously to make sure.

Robert Jacobson
Monday, January 12, 2004

yes, you do need to retest. office is mostly but not 100% backwards compabible. i'll also recomend late binding if you don't do version detection. there are some obscure cases where office will not work quite right even though the API hasn't changed. plus the version-dependent progids aren't always version-dependent (e.g. word.application.10 might actually start word 11)

mb
Monday, January 12, 2004

I developed a MS Word interface for my company’s product 2-3 years ago using late biding. At the time my specs required the module to support Office97 and up. It still works without any problem with Office XP. You have to be careful though with the evolutionary behavior of certain methods (i.e. Open()). Since Office2000, this method opens a new document in what it looks like a new Word instance but in the fact is the same WinNT process. In the previous versions Word had a pure MDI look. Depending on your GUI, your user might be confused by this kind of differences.

coresi
Tuesday, January 13, 2004

*  Recent Topics

*  Fog Creek Home