Sign in to follow this  
Guest iholrf

XML Woes... I though I'd see everything...

Recommended Posts

I have a rather simple transponder that is giving me a fit...It will load and run perfectly on several FS9 machines, but will cause an "ntdll.dll" error on several others.The code has been checked and verified to be error free and all the XML has been validated several times and is certifiably "well-formed."Has anyone ever run across this type of problem before?What makes things even MORE confusing... I've managed to get the same gauge running on one of my "problem" FS9 machines, but the same code won't work (just disappears entirely) when loaded on the other FS9 computer!Argh!

Share this post


Link to post
Share on other sites
Help AVSIM continue to serve you!
Please donate today!

One problem I can think of when I was working on a panel project with another gentleman.. Any negative placement of the gauge for example:Gauge01=Blah!Blah, -1, 0, 250, 250It would work fine on my setup... Not his.Regards,Roman

Share this post


Link to post
Share on other sites

>>One problem I can think of when I was working on a panel>project with another gentleman.. Any negative placement of the>gauge for example:>>Gauge01=Blah!Blah, -1, 0, 250, 250>>It would work fine on my setup... Not his.Thanks for the guess... unfortunately that isn't an issue in this case. :(

Share this post


Link to post
Share on other sites

Hi BillNtdll.dll is a windows system file (ie not related to any fs9 install)this could mean that the sytems that are having problems could just be sick.judging from the hits on "ntdd.dll error"on google its a common problem.If the system is a win2k then there was a flawed ntdd.dll which could be exploted,this has been patched by M$oft.If the system has never been patched/updated it could be the problem.This is just all pie in the sky but maybe a combo of gauges and system causes the system to spit the dummy.As the old saying go's remove all posible senerios whats left no matter how strange is the culprit:DcheersWozza

Share this post


Link to post
Share on other sites

"The code has been checked and verified to be error free and all the XML has been validated several times and is certifiably "well-formed."What software do you use to do that?Glenn

Share this post


Link to post
Share on other sites

>Hi Bill>Ntdll.dll is a windows system file (ie not related to any fs9>install)>this could mean that the sytems that are having problems could>just be sick.All the computers tested thus far are running WinXP. In one case, the laptop had both a "virgin" WinXP install and a "virgin" FS9 (patched 9.1) install.Now, follow closely along with me on this one:1 (>L:XMLClick,enum) (L:Function,enum) 1 + 7 min (>L:Function,enum)On my main flightsim computer, the above works perfectly. L:Function,enum will increment from 0 to 5 and then reset to 0 as designed.On my office computer, the same code will not reset to 0, but instead will continue to increment L:Function,enum... This is truly frustrating!

Share this post


Link to post
Share on other sites

Ew, that's... disturbing. Not that it should make any difference, but have you tried changing the units from enum to something arbitrary?--Jon

Share this post


Link to post
Share on other sites

>Ew, that's... disturbing. Not that it should make any>difference, but have you tried changing the units from enum to>something arbitrary?That didn't make any difference. However, I find that forcing the variable back to 0 does work well on both computers:1 (>L:XMLClick,enum) (L:Func,enum) 4 > if{ 0 (>L:Func,enum) } (L:Func,enum) 1 + 5 min (>L:Func,enum) But, I should not HAVE to do this...I think I've narrowed down the XML that's the proximate cause of the "ntdll.dll" error:(L:GTXCursor,enum) 1 ==I'm about to test this "theory" by removing the "Transparency="0.3" to see if that is the problem...If I'm correct in this, the "Transparency" tag is the problem. If so, then perhaps it is an outdated and/or corrupt gdiplus.dll that is at fault.NOTE: I was correct. The "Transparency" tag is the problem!CRASH!NO CRASH!

Share this post


Link to post
Share on other sites

>"The code has been checked and verified to be error free and>all the XML has been validated several times and is>certifiably "well-formed.">>What software do you use to do that?>GlennXML can be verified online at www.w3.org. Any decent XML editor usually also includes a built in tag validator. What this means is all tags are legal, closed and sane. Nothing checks to see if your code is right. Thats up to you.For C/C++ there are also built checkers/tidiers within the IDE you are using. Then of course there is the error output from preprocessing and compiling. This is where your debugging tools come in. Again just because the code is error free (as far as the checker / compiler / interpreter know about), it doesn't mean you have writen good code.CheersShad

Share this post


Link to post
Share on other sites

>If I'm correct in this, the "Transparency" tag is the problem.> If so, then perhaps it is an outdated and/or corrupt>gdiplus.dll that is at fault.>>>NOTE: I was correct. The "Transparency" tag is the problem!>Darn, that transparancy element looked useful. What kind of video cards are installed in the machines that crash/don't crash? Perhaps a driver bug or unsupported DX feature?

Share this post


Link to post
Share on other sites

>Darn, that transparancy element looked useful. What kind of>video cards are installed in the machines that crash/don't>crash? Perhaps a driver bug or unsupported DX feature?Both machines are running WinXP (not patched!). I'm investigating ntdll.dll and gdiplus.dll to see what version numbers are running on each of the two.

Share this post


Link to post
Share on other sites

Hi,I use this one for years:(L:ind lights,bool)(L:overhead lights intensity,enum) 0 ==(L:overhead lights intensity,enum) 1 ==(L:overhead lights intensity,enum) 2 ==(L:overhead lights intensity,enum) 3 ==(L:overhead lights intensity,enum) 4 ==(L:overhead lights intensity,enum) 5 ==(L:overhead lights intensity,enum) 6 ==(L:overhead lights intensity,enum) 7 ==(L:overhead lights intensity,enum) 8 ==(L:overhead lights intensity,enum) 9 ==(L:overhead lights intensity,enum) 10 ==Never any crash.Jan"Beatus Ille Procul Negotiis"

Share this post


Link to post
Share on other sites

Jan, I don't doubt that for a minute...However, I've found at least four computers thus far that will crash with a "ntdll.dll error" if the keyword "Transparency" is anywhere in the XML code, even if the line containing that word is commented out!Three other team members are experiencing the same issues with ntdll.dll errors, engendering a CTD. In one case, the error is so severe that FS9 simply STOPS and dumps back to the Desktop without ANY error message.Just having the commented out line present will cause a crash, because the XML Parser is encountering it when auto-generating the run-time drawing code... Thus far, updating ntdll.dll per MS's recommendation hasn't fixed the problem, nor has updating gdiplus.dll fixed it...

Share this post


Link to post
Share on other sites

I second this.Used the same technic for my EICAS brightness system with no trouble at all.Tom

Share this post


Link to post
Share on other sites

Well, maybe I'm chasing after a "Red Herring." I just checked and the default GPS will load and display just fine on this "problem computer..."...and needless to say, it too uses the "Transparency=XX" tag just fine... With that in mind then, I guess I'm just going to have to rip into the XML code with a fine-toothed comb, searching for more clues...One of the "XML Validation checks" I've come to depend on is whether the code loads and runs properly in FS9.Since I now have TWO examples of XML code that will run on ONE machine and NOT on another, that truly means that using FS9 as an "XML Validation check" isn't reliable at all...

Share this post


Link to post
Share on other sites

Bill,>1 (>L:XMLClick,enum) (L:Function,enum)>1 + 7 min (>L:Function,enum)>>On my main flightsim computer, the above works perfectly. >L:Function,enum will increment from 0 to 5 and then reset to 0>as designed.Maybe I miss something, but looking at your code, it will assign L:Function a value from 0 to 7 and keep 7 once reached. Are you doing a reset of this variable elsewhere?Just curious :-)Tom

Share this post


Link to post
Share on other sites

Yes, I do... I forgot to include this section in my revised code (L:Func,enum) 6 == if{ 0 (>L:Func,enum) }

Share this post


Link to post
Share on other sites

>"The code has been checked and verified to be error free and>all the XML has been validated several times and is>certifiably "well-formed.">>What software do you use to do that?Well, I've been using XMLNotepad.exe to validate that the XML syntax is well-formed, as well as MS Internet Exploder. If the syntax is incomplete or malformed, the XML file won't load.I've been depending on FS9 to provide the logic/programming validation, but that seems not to be as reliable as I had thought, since I now have two examples of XML code that will run properly on on FS9 computer, but NOT on another... ;(

Share this post


Link to post
Share on other sites

Bill,Ok I guessed that.A hint (I hope):Make a only, do the test on both machines and let me know, could you?Regards,Tom

Share this post


Link to post
Share on other sites

>Make a only, do the test on both>machines and let me know, could you?Actually, it is working fine now, either way. I found a slight "error" in my copy-n-pasting...It seems that I have to admit now that I've led everyone along on a "wild goose chase," since it is apparent to me now that there's an error in my XML that somehow only shows up on certain computers.The gauge works perfectly fine until I try to insert the following (which only paints a semi-transparent orange rectangle behind the numeric display):(L:GTXCursor,enum) 1 ==I use the exact same syntax for another part of the same gauge without generating a CTD, so I know that there's nothing wrong with the syntax per se, but somehow the drawing order or perhaps another problem...

Share this post


Link to post
Share on other sites

Bill,I understand it may be quite frustrating when these kind of troubles arise :-(I have a problem similar, in a way, when dealing with third level nested macros; at one point, with one line of code present, FS did nothing but crash. Erase the line, problem solved.So far my best solution was to abandon the code until my mind could clever up with some freshen ideasSo, abandon yes, but keeping the promise to recall :-)Tom

Share this post


Link to post
Share on other sites

I've run accross a similar situation yesterday! I was trying to find out why a gauge was displaying a black rectangle instead of its bitmap on the panel. This gauge is in a gauge pack. I commented out the line in the panel.cfg and all broke down. ??? This gauge used to work before, and now, I get a crash in FS...It took me the afternoon with a debugger to realise that the gauge after in the panel.cfg file was no longer having a shared global initialized because I've commented out the other gauge in the panel.cfg file a couple line befores, and this expected variable was now 0...This helped me find out a flaw in the "crashing" gauge init code that is now solved!I wish I could have saved the afternoon... :-)PS: by the way, the black bitmap was because it was not listed in the ressource file LOL

Share this post


Link to post
Share on other sites

>Jan, I don't doubt that for a minute...>>However, I've found at least four computers thus far that will>crash with a "ntdll.dll error" if the keyword "Transparency">is anywhere in the XML code, even if the line containing>that word is commented out!>>Three other team members are experiencing the same issues with>ntdll.dll errors, engendering a CTD. In one case, the error>is so severe that FS9 simply STOPS and dumps back to the>Desktop without ANY error message.You say this like its unusual. CTD with no error messages, even the occasional system lockup are the norm when I am working on FS and testing.I think it is due to by sound card (at least as a symptom) and tooltips in FS. If I do not turn them off the soundcard begins to crackle a crash is nearly certain.As for transparency, I was going to mention that it was you who gave me working tranparency XML code for my GPS mod/skin. ;) However it seems you and others have already found the problem.I am about to make the backround ploy's tranparent in a similar way to the way you describe for the head gauge. I am curious to know the result given your recent experiences.CheersShad

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this