locked
GDFMaker - index (zero based) must be greater than or equal to zero and less than the size of the argument list

    Question

  • Hello all.

    I´m trying to create a GDFMaker Project, after I give a name, choose the prooject location and press OK, I get the error "index (zero based) must be greater than or equal to zero and less than the size of the argument list" and the project is closed. Nothing is saved.

    I already have the latest SDK version. Does anyone solved this problem. Is there any other tool to generate the GDF?

    Thanks.

    Wednesday, January 09, 2013 12:05 PM

Answers

All replies

  • Solved!!!

    I download the June 2010 Directx SDK (http://www.microsoft.com/en-us/download/details.aspx?id=6812) and then I used the GDFMaker.exe from folder C:\%Program Files (x86)%\Microsoft DirectX SDK (June 2010)\Utilities\bin\x86 instead from Windows Kit folder.

    Wednesday, January 09, 2013 4:05 PM
  • Note that the legacy DirectX SDK version of GDFMaker is not fully updated for the latest ratings, so you may not be able to populate your ratings correctly using it.

    You can manually edit the GDF since it's just XML. You should be sure to use the GDFTrace tool to validate it.

    Wednesday, January 09, 2013 11:11 PM
  • Hello Chuck, but to edit the xml file I must to know the id for the other ratings, it´s a GUID, is there a place to take it?

    Is there any solution to run the GDFMaker without the "index" error? I´m using Visual Studio For Windows Express.

    Thanks


    Thursday, January 10, 2013 10:09 AM
  • Forget about my last question Chuck, I found in your code. Thank you.

    Thursday, January 10, 2013 12:21 PM
  • I've not been able to repro the error you are reporting on either a Windows 7 Service Pack 1 x64 or Windows 8 x64 system. Are you running Windows 8 RTM or an RC release?
    Thursday, January 10, 2013 9:18 PM
  • I´m using Windows 8 Pro.

    I did the upgrade from Windows 7 to Windows 8. I didn´t format my c drive from boot, I ask Windows 8 installer  to install the Windows from store state (erase all my data, the process took a long time).

    After that I installed Visual Studio 2010 Ultimate, Visual Studio 2012 For Web Express and Visual Studio 2012 for Windows Express.

    Then I installed the latest version of Windows SDK (http://msdn.microsoft.com/en-us/windows/hardware/hh852363).

    Today I installed Visual Studio 2012 Update 1. And I just installed an update for .NET 4.5.

    I don´t have problem to run the GDFMaker from Directx June 2007 neither Directx 2010.

    Is it possible I use reflector in any dll to try understand what is happening? Wich dll?

    Thanks for your help, I really appreciate.



    Friday, January 11, 2013 2:34 AM
  • I'm getting this as well, but we need to be able to set the new ratings so the June 2010 GDFMAKER.exe is not the solution for us.  I got my colleagues at Microsoft Studios to create the basic GDF project (works for them, as it does for you), but I also get the "Index (zero based)" error when loading that project.

    I tried it on another machine here, but we get the same error.

    Could it be a region issue with retrieving the new ratings?  Murilo is not in the US, and neither am I, however it works for Chuck and our other Microsoft colleagues.

    Wednesday, April 17, 2013 2:46 AM
  • I copied an existing gdf.xml from an open-source project (seeing as I cannot create one due to the above error and our colleagues at Microsoft only sent the GDFMakeProject file and not the gdf.xml file) to see what GDFTrace said.  Here is the output:

    C:\GDFTrace\C++\Release>GDFTrace.exe /noisy /store /gdf "D:\TY\GDF\TY.GDFMakerProject"
    Language: LANG_UNKNOWN (0x0000)
            Type: Game
    Warnings:
            LANG_UNKNOWN (0x0000): This GDF is using the v1 schema. Use of GDF v2 is
     recommended.
            LANG_UNKNOWN (0x0000): The node is neither valid nor invalid because no
    DTD/Schema declaration was found.

            LANG_UNKNOWN (0x0000): No ratings data found

    Ignoring the v1 warning (because of the gdf.xml originating from the June 2010 GDFMAKER.exe), is the LANG_UNKNOWN (0x0000) output by GDFTrace any cause for concern?

    Wednesday, April 17, 2013 3:19 AM
  • After getting the GDF file created by a colleague at Microsoft, I decided to take a closer look at GDFMaker.exe to try to work out why it crashes.

    On creating a new GDFProject or loading an existing GDFProject, it loads the libraries for each ratings system.  I'll use CERO for this example, as that is the one it first breaks on.

    - It loads the library located at C:\Windows\System32\cero.rs.  This works fine.

    - It inserts en-US into the path and adds .mui onto the end, ending up with C:\Windows\System32\en-US\cero.rs.mui.  This file does not exist on our Windows 8 machines.

    - Because this file does not exist, it throws a ResourceFileLoadException which is a custom exception defined in the GDFMaker code.  The constructor of ResourceFileLoadException takes the filename that caused the error.  The filename passed to ResourceFileLoadException is C:\Windows\System32\cero.rs.mui (notice the en-US is missing).  This does not have an effect on the error. It would simply report the wrong filename.

    - The constructor of ResourceFileLoadException tries to create an error message from a built in resource string (Resources.ResourceFileLoadError).  This resource string is a format string, requiring other parameters to fill in the format.  The resource string is "The resource file can not  be opened. Resource File: {1}".  Note the use of {1} and not {0}.

    - There is only one parameter passed to the format string (the filename), but the resource string requires the filename to be passed as the second parameter.  This throws a System.FormatException, which is not handled by the resource loader.  It bails out of the project code, all the way up to an unhandled exception handler.  This forcibly closes the project that you were trying to create or load.

    In summary, there are three issues at play here.

    - C:\Windows\System32\en-US\cero.rs.mui does not exist on all Windows 8 systems, for whatever reason.

    - It passes the wrong filename to ResourceFileLoadException.

    - The ResourceFileLoadException in the GDFMaker.exe code does not pass enough parameters to create the error message, causing System.FormatException to be thrown.

    Monday, April 22, 2013 11:57 PM
  • Thanks very much for the detail. That's very helpful. What version of Windows 8 do you have installed exactly? Is it a non-English language edition?
    Thursday, April 25, 2013 7:12 PM
  • Windows 8 Professional 64-bit English

    I have since discovered that cero.rs.mui is located in C:\Windows\System32\en-GB instead of en-US.  In fact, all of the ratings .mui files are in the en-GB folder.  This will be because we installed with English (Australia) as the language.  GDFMaker however has a hard-coded string "en-us" when creating the path to the .mui file.  GDFMaker needs to ask the system for the install language before creating the path to the .mui file instead of assuming "en-us".

    Friday, April 26, 2013 12:10 AM
  • I have the same issue with the index. I'm using Windows 8 Pro, pt-BR locale. 

    There are any workaround other than edit the XML file by hand?

    Thursday, May 16, 2013 11:26 AM
  • Solved! I just installed the US English Language Pack and now I can create and edit GDF projects.

    HTH

    • Proposed as answer by JLOrihuela Thursday, June 06, 2013 5:58 AM
    Thursday, May 16, 2013 12:44 PM
  • Thank you LinderBoss and Steve Williams!

    You saved my day!

    I, too, installed the US English Language Pack for Windows. Now, the error message is gone.

    Wednesday, June 12, 2013 5:21 PM
  • It's not solved.

    Installing en-US does nothing.

    Some help/fix from microsoft is welcome. 

    ...

    Ty.


    • Edited by Joskino Tuesday, June 18, 2013 1:13 PM
    Tuesday, June 18, 2013 12:51 PM
  • Installing en-US fixes the problem described in this thread, as does manually copying the missing .mui files (requires administrator rights)

    md %WINDIR%\System32\en-US
    for %I in (%WINDIR%\System32\<your locale>\*.rs.mui) do copy %I %WINDIR%\System32\en-US
    

    Perhaps you can be more specific about your problem?

    Tuesday, June 18, 2013 5:41 PM
  • As I said the problem is not resolved. I'm getting the same error even with the en-US pack. It's a new computer with only the apps for sending a windows app on the store.

    So, installing en-US doesn't work for me, but copying the .mui from my local to the en-US did it.

    Thanks.

    • Edited by Joskino Tuesday, June 18, 2013 5:58 PM
    Tuesday, June 18, 2013 5:53 PM
  • Did the language pack installer itself display an error when you say "installing en-US doesn't work for me"?

    Tuesday, June 18, 2013 8:42 PM
  • Hi Chuck, I'm experiencing a similar problem with GDFMaker. I've installed en_us language pack, and tried manually copying .mui files from en_GB to en_US, but neither solution has worked for me!

    This is the only thing holding up release of our app (and it really should not have been an issue in the first place, if the software was sound and working properly)! Do you know if there are any other options I can try, or other ways to create a GDF file for our app?

    Thanks for your time.



    Thursday, September 12, 2013 2:51 PM
  • The workaround does fix the problem, so perhaps you didn't apply it correctly.

    Note this issue is fixed with the GDFMaker in the Windows 8.1 SDK that comes with VS 2013 RC.

    Tuesday, September 17, 2013 7:35 AM
  • Hi Chuck, thank you for the reply.

    It's just a case of installing the en_US lang pack, or copy/paste the .mui files (cero.rs.mui, cob-au.rs.mui, esrb.rs.mui etc...) from my en-GB to my en-US folder correct? If so, I can confirm that I managed to completed both these tasks correctly (several times). Despite this, I still receive the index (zero-based) error message when trying to create a new GDF file. Can you elaborate on how else I could've applied the solution correctly?

    It's also worth noting that after installing the en_US lang pack, I was able see all of the correct .mui files in the en-US folder. However I'm still getting the error message in GDF maker!




    Thursday, September 19, 2013 10:55 AM
  • We've never seen a repro where all the %WINDIR%\System32\en-us\*.rs.mui are present and you get the error.

    My suspicion is that you have KB2838466 installed which added RARS.rs to your system, but the EN-US language pack is missing en-US\rars.rs.mui. Can you check that you have an en-US\*.rs.mui file for every %WINDIR%\System32\*.rs on your system?

    The good news is this issue is fixed in the Windows 8.1 SDK RTM version of GDFMAKER.EXE--currently in the VS 2013 RC, but will be a standalone with GA Of Windows 8.1.


    Thursday, September 19, 2013 5:58 PM
  • Hi Chuck,

    I checked the en-US folder, and was unable to locate the file rars.rs.mui. However, I can see this file in the en-GB folder. Is it possible to copy/paste this file from one folder to the other? If not, then perhaps it would be easier just to try using the Windows 8.1 version instead!

    Thanks again for the help and advice.


    Friday, September 20, 2013 5:41 PM
  • For the purposes of working around this bug, copying all the .rs.mui files from en-GB to en-US is fine. It does require admin rights.

    Note that the updated GDFMaker in the Windows 8.1 SDK does not require it is run on Windows 8.1... It works fine on Windows 8.

    In the end, all that matters is your GDF contains the right set of GUIDs for your ratings and is properly formed. You can even hand-edit the GDF. See the GDFTrace tool's ratings.xml for a full list of all possible GUIDs, and then you can use the tool to validate you got the correct schema.


    Friday, September 20, 2013 7:17 PM
  • Thanks Chuck,

    I'll try copying the rars.rs.mui into the en-US folder (other .rs.mui files are already there)!. If that doesn't work, I can use the 8.1 version, or hand-edit as a back-up solution :)

    Saturday, September 21, 2013 7:27 PM
  • Yes, I got rid of the error by copying rars.rs.mui from en-GB to en-US

    Silly old Microsoft.

    Wednesday, October 02, 2013 10:01 PM
  • The joys of updates.

    As I've said, this issue does not impact GDFMaker in the Windows 8.1 SDK.

    Wednesday, October 02, 2013 11:11 PM
  • The corrected version of GDFMaker is available in the Windows 8.1 SDK RTM, which is also included with VS 2013 RTM.
    Monday, October 21, 2013 11:23 PM
  • Hi,

    I'm having the same problem here, using Windows 8.1 x64 Spanish, and Visual Studio 2013 update 1. I haven't tried the workaround yet.

    Edit: Solved the problem with the workaround: copying all the rs.mui files from es-ES to en-US. But according to what Chuck said regarding VS 2013, I shouldn't have this problem on the first place, right? Have a nice day.

    Monday, March 31, 2014 8:42 AM
  • Can you confirm which version of GDFMaker you are running?

    Monday, March 31, 2014 6:31 PM
  • I have VS2013 update 3 but the GDFMaker (located at %ProgramFiles(x86)%\Windows Kits\8.0\bin\x86 ) gives the same error when creating a new project.
    Tuesday, August 05, 2014 6:53 PM
  • %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 has the latest version of GDFMaker.
    Wednesday, August 06, 2014 5:43 AM