Thread: Plea For Help With Error C1600

  1. #1
    Registered User
    Join Date
    Feb 2003
    Posts
    265

    Plea For Help With Error C1600

    Micro$haft Developers Studio 6 Service Pack 4 Visual C++:

    This is the only output the compiler will give me:

    Compiling...
    mathlib.cpp
    fatal error C1600: unsupported data type
    Error executing cl.exe.

    mathlib.obj - 1 error(s), 0 warning(s)

    Thats it, no line numbers, nothing else. Help. What is it unhappy about? I googled and found nothing, and the MSDN has no useful information about this. Only suggests fixing installs which is bs. WHAT CAUSES THIS ERROR? I have NEVER seen it before!

  2. #2
    Hardware Engineer
    Join Date
    Sep 2001
    Posts
    1,398

    Talking Some guesses & useless suggestions...

    I assume that this is not a compiler problem... "Hello World" compiles, right?

    Maybe the lack of a line number means there's a problem with a preprocessor directive... Are there any weird #define(s)?...

    Are there any types that aren't typedef(ed) somewhere?

    Is this your code? ...Because if it is, then you should have an idea about where the error is... whatever you've added since your last successful compile! You might have to comment-out 'till it compiles.

    If this is not your code, maybe it's not compatable with your compiler... In that case, commenting-out might be impractical if it's not a small program... And with a name like "mathlib", it might be huge!
    Last edited by DougDbug; 10-07-2003 at 01:47 PM.

  3. #3
    Registered User jlou's Avatar
    Join Date
    Jul 2003
    Posts
    1,090
    Do you use something like: __declspec(align(16))?

  4. #4
    I am he who is the man! Stan100's Avatar
    Join Date
    Sep 2002
    Posts
    361
    [commenting on TERRIBLE subject title]

    [Mysterious voice over]
    "One minute ago Stan100 was scrolling down the C++ programming forum. Then he spotted a subject title that lacked no thought process whatsoever. Let me explain why. (big breath)
    Better yet, let me answer why it is so horrible with another question:
    What is the reader supposed to think when he/she see this?
    "Ah yes Error C1600, I know that one."
    [/Mysterious voice over]

    Maybe unsupported data type error might have been better. Maybe I should stopped before I get banned. Maybe monkeys shoudl rule the earth. Who KNOWS?
    Stan The Man. Beatles fan

    When I was a child,
    I spoke as a child,
    I thought as a child,
    I reasoned as a child.
    When I became a man,
    I put childish ways behind me"
    (the holy bible, Paul, in his first letter to the Cor. 13:11)

  5. #5
    Registered User jlou's Avatar
    Join Date
    Jul 2003
    Posts
    1,090
    [commenting on TERRIBLE post]

    [Mysterious voice over]
    Uhhh, I recognized the C1600, but I would not have recognized "unsupported data type error". In fact, when I read the subject I said to myself, "Ah yes Error C1600, I know that one."
    [/Mysterious voice over]


  6. #6
    I am he who is the man! Stan100's Avatar
    Join Date
    Sep 2002
    Posts
    361
    Heh, both of use are going to get this guys' post closed.

    It sounds like you're defending him because I flamed him.
    Well, I didn't mean anything toward him.

    Besides, if you can say:
    In fact, when I read the subject I said to myself, "Ah yes Error C1600, I know that one."
    Then kudos to you, my friend. Besides, that means there's someone geekier than me in the world.
    Stan The Man. Beatles fan

    When I was a child,
    I spoke as a child,
    I thought as a child,
    I reasoned as a child.
    When I became a man,
    I put childish ways behind me"
    (the holy bible, Paul, in his first letter to the Cor. 13:11)

  7. #7
    Registered User jlou's Avatar
    Join Date
    Jul 2003
    Posts
    1,090
    No worries. I just thought it would be fun to comment on your post in the same good cheer as you commented on the subject.

    As far as knowing C1600, I must declare that I am no geek!! I actually don't understand it at all, I just know it from a post I read in another forum. In that case, the problem had to do with the user using __declspec(align(16)) or something like that in VC++ 6.0. Sorry, you are back to being possibly the geekiest.

  8. #8
    Registered User
    Join Date
    Feb 2003
    Posts
    265
    Jlou yes:

    Code:
    ...
    const __declspec(align(16)) float _ps_##Name[4] = { Val, Val, Val, Val }
    ...blablabla
    Is there something wrong with this? __declspec is used in a dozen places here and there.


    PS: sry about the late reply, uuber busy today.


    PPS: stfu stan.
    Last edited by Geolingo; 10-07-2003 at 09:42 PM.

  9. #9
    Registered User jlou's Avatar
    Join Date
    Jul 2003
    Posts
    1,090
    Here's the quote from the forum, I bolded the part I thought would help the most:
    hankgao0703 (Programmer) Aug 20, 2002
    In one of my projects, I have to use __declspec(align(16) to force the memory allocation is done at 16 bytes boundary, but I alway get error:

    C1306(or else) => Unsupported Data Type

    When I remove __declspec(align(16)) modifier, everything seems ok.

    by the way, based on the MS document, __declspec(align(xx)) is used to specify boundary for structure, Can I use it for memory allocation for an array?

    Thanks in advance!

    ==============================================

    sflam (Programmer) Aug 20, 2002
    Can you show your code?

    Shyan

    ==============================================

    hankgao0703 (Programmer) Aug 21, 2002
    Sure,

    I declare a structure type as the following:

    __declspec(align(16))
    struct MyStruct {
    //
    short shortArray[12][64];
    .....
    }myVarName;

    and the compiler reports:
    fatal error C1600: unsupported data type
    When I doule clike this error message in the build window, I can go nowhere in the sourcecode.

    It takes me quite a while to figure out the reason is the __declspec(align(16)) modifier.

    ==============================================

    sflam (Programmer) Aug 21, 2002
    I don't have problem with the code fragment of yours. What kind of project are you trying to build?

    The doc for C1600 said it could due to "imcomplete installation". May be you should reinstall VC.NET.

    Sorry if this is not helpful.

    Shyan

    ==============================================

    hankgao0703 (Programmer) Aug 22, 2002
    "Incomplete installation"? probably, I never thought of this reason, and I will check it out.

    I don't quite understand why you say VC.NET, I am using VC6.00, Do I have to use VC.NET before I can use __declspec(align(xx))?

    ==============================================

    sflam (Programmer) Aug 22, 2002
    Something is not right here...Don't reinstall your installation yet.

    __declspec() do not support align() in VC6. It only works on VC.NET.

    in VC6, you have to use #pragma pack(16), or its variations:

    // Save current alignment setting to interanl compiler stack and
    // set alignment setting to 16
    #pragma pack(push, 16)

    // ...
    // put your struct here
    // ...

    // Restore previous alignemnt setting
    #pragma pack(pop)


    HTH
    Shyan

    ==============================================

    hankgao0703 (Programmer) Aug 22, 2002
    Thanks, this is of great help
    The site is http://www.tek-tips.com and the forum was the Microsoft: Visual C++ Forum. Hope it helps.

    Code:
    [Ignore this - Can't post a quote with '{' without code tags :) ]

  10. #10
    Registered User
    Join Date
    Feb 2003
    Posts
    265
    ThankyouThankyouThankyouThankyouThankyouThankyouTh ankyouThankyou!!! Im going to try the processor pack for vc6. and if that doesnt work ill have to bum a copy of .net off of somebody. stupid vector math library.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Image Protection! Plea for Advice
    By Davros in forum A Brief History of Cprogramming.com
    Replies: 40
    Last Post: 10-19-2002, 05:07 PM