TCalcX/Net framework 2/Vista 64

rhumbaflappy

Moderator
Staff member
Resource contributor
#22
Hi George.

Acceleration will not = FSX + SP2.

Acceleration contains core changes that will not be in FSX. These changes are significant enough that Acceleration can no longer be called FSX. They are different sims. We will start finding things in FSX + SP2 that are "broken" in Acceleration. And "fixes" will be relevant only to Acceleration.

Your system being Vista64 + Acceleration, may have problems not present in XP32 + FSX SP1 ( or SP2 ), concerning core funtions, like SimConnect.

Acceleration is much more than the addition of aircraft and missions. These aircraft and missions may not work in FSX SP2... I'm certain the missions won't work. We may even find scenery elements not working the Acceleration.

TCalcX was compiled with XP32 and the RTM of SimConnect. The reason of Aces using the Windows SxS was to assure that early programs and DLLs made with the RTM version would still be usable by later updates to FSX and SimConnect.

If this is broken ( TCalcX no longer working ), then the Aces have wasted our time with the WinSxS. This is why I'm asking if anyone else has Vista64 problems with TCalcX... because if they do, then programs like FSXPlanner or SBuilderX are also in danger of future incompatibility.

I would like to see if the problem is Vista64, or Acceleration, or something specific to your computer... I can't do that without others stepping in here to help.

I can assure that TCalcX works with WindowsXP-32 bit, the .Net 2.0 runtimes, and FSX RTM ( and SP1 ).


Dick
 
#23
But why does Rhys' recompilation work on both my XP 32 and Vista 64? He said he recompiled it with the RTM SDK.

And, why does your latest version produce a huge dialog on my XP wheras your original still works with the correct size dialog :confused:

BTW. I know of one other person for whom TCalcX doesn't work in SP2 Vista 64 but FSXPlanner works on that system.

George
 
Last edited:

rhumbaflappy

Moderator
Staff member
Resource contributor
#24
Hi George.

More mysteries. :(

Both my versions, and Rhy's version, work as expected, and looks as expected, in my WinXP-32.

I have no idea why Rhy's version would be any different on your system... but I'm glad it works.

Dick
 
#26
I don't understand the cause of your problem, but it sounds like an architecture mislinking, as the common denominator is Vista 64. The managed simconnect lib is just a wrapper around original, 32 bits, C code. I don't know how the .NET environment translates these calls in a 64 bits runtime, or if it search other architectures variants in WinSxS ...

FSXPlanner uses jsimconnect, which do not contain any reference or call to the original MS implementation, and is totally portable (provided the host is supported by the j virtual machine, and of course connection problems :rolleyes:)
 
#27
I don't know how the .NET environment translates these calls in a 64 bits runtime
TCalcX, FSX and SimConnect are 32 bit so there is no 64 bit addressing. The SDK doc states:

Ensure that Visual Studio 2005 or later, or Visual C++ or C# 2005 Express Edition or later, have been set to 32 bit only. When installed with a 64 bit operating system, these tools will default to a setting which is incompatible with SimConnect.dll. Go through the steps in the Setting x86 Platform Configuration section if you are working with a 64 bit operating system:

Select the Tools/Options menu item.
Check “Show all settings”.
Check “Project and Solutions->Show Advanced Build Configurations”.
Open Build->Configuration Manager.
Select the combo box under the “Platform” column for the project you want to target.
Choose “NEW…”
Under “New Platform” select x86.
Click OK, then Close. Note that the Toolbar combo box for Platform Configuration has x86 selected.
Building will now be restricted to x86-only binaries.



As I said, Rhys' recompiled version of TCalcX works perfectly on both XP and Vista 64.

George
 

rhumbaflappy

Moderator
Staff member
Resource contributor
#30
Hi George.

It works fine in my XP. Glad it works in Vista64... that's solved.

I see that the toolbar in the XP run has additional gadgets to click ( beyond the minimise, enlarge and "x" for closing ). These aren't present on my system. That would be my guess why it is oversized.

All I changed was the the compiler directive and the name as TCalcX_003.

Dick
 
#31
I see that the toolbar in the XP run has additional gadgets to click ( beyond the minimise, enlarge and "x" for closing ). These aren't present on my system. That would be my guess why it is oversized.
Hi Dick,

Those toolbar icons are because I have two monitors, I can maximise either to one screen or to both.

This isn't the reason for the large dialog, your very first version of TCalcX_002 still works on this machine with the normal size dialog :confused:

As the only version which works on both machines is that compiled by Rhys, I think I had better stick with that one.

George
 
#32
Wow I should haave checked back earlier sorry about the wait.

My version was compiled using the SP1 SDK for x86. I have Acceleration + SP2 installed (but not the SP2 SDK) and my version of TCalcX works fine with that. The original version didn't work for me either on Vista 64 thats why I recompiled it.

I'm making some small additions too, mainly a button which logs the current coorindates to a text box, so you can get multiple coordinates in one sitting.
 
#33
I think I have found the explaination as to why the original TCalcX does not work in Vista 64. It may not have anything to do with SimConnect.

When .Net code is run the Windows Loader makes a decision on the target architecture (32bit x86 or 64bit x64). This decision can be controlled by the software developer, by setting some flags the PE header. The options are:

64 bit - tells windows to run as 64bit
32 bit - tells windows to run as 32bit
Agnostic - the app can be run as either 32 or 64bit.

What could be happening is that the original version of TCalcX was built with the flag set as Agnostic, so when it is run in Vista 64bit it tries to run as a 64bit app and fails due to a coding error. However run it on 32bit windows and its fine. The copy I compiled was set to 32bit so it ran as a 32bit app on Vista 64.

Thats my theory anyway. More info at http://msdn2.microsoft.com/en-US/library/ms973190.aspx

As for writing 64bit apps that use SimConnect, it most likely can be done, but may need extra work because in the end you are accessing a 32bit module. The above link has some info on this.
 

rhumbaflappy

Moderator
Staff member
Resource contributor
#34
Hi Rhy.

Your explanation is right. TCalcX was written using the 2005 C# Visual Studio Express edition. That edition, and the just-released 2008 edition, both default to ANY CPU. That needs to be changed to x86 to assure compatibility with Vista-64.

The .NET wrapper for Simconnect also requires x86 ( 32-bit ).

Vista assumes all programs are 64-bit, unless specified as x86... which is butt-backwards. Why assume "Any CPU" programs are 64-bit, when 99% of all programs written are 32-bit? And since when would a 32-bit CPU run a 64-bit program? Hmmm...

I think I wrote this before Vista was released, and certainly before the Aces warned us to compile as x86. The problem just never came up before.

I still don't know why George's Windows Form is wrong in his XP use with the original, but your's is working just fine for him.

Dick
 
#35
I have TcalcX on a new manufacturer Vista 32 Computer.

I have loaded the Accel Pack (SP2) and TcalcX continues to work fine just like it did with Sp1a.

I have Tcalc on this Vista 32 computer with FS9 and it works also.
 

rhumbaflappy

Moderator
Staff member
Resource contributor
#36
Hi Jim.

Thanks for the input. I think 32-bit, both XP and Vista are fine. Rhys version certainly would be fine, and the last exaple I had in this thread should be OK.

Dick
 
#37
Dick,

Both the 002 and 003 above work on both my XP Pro 32 bit and XP Pro 64 bit versions. The XP 64 bit also has the Acceleration expansion pack installed. Thanks!

JimD
 
Top