Microsoft KB Archive/119501

= PRB: Error CXX0017 or CXX0034 for typedef =

Article ID: 119501

Article Last Modified on 12/2/2003

-

APPLIES TO

 The Visual Workbench Integrated Debugger, when used with:  Microsoft Visual C++ 1.0 Professional Edition

 Microsoft Visual C++ 2.0 Professional Edition

 Microsoft Visual C++ 2.1

 Microsoft Visual C++ 4.0 Standard Edition</li></ul>

 Microsoft Visual C++ 5.0 Enterprise Edition</li></ul>

 Microsoft Visual C++ 5.0 Professional Edition</li></ul> </li></ul>

-

<div class="notice_section">

This article was previously published under Q119501

<div class="symptoms_section">

SYMPTOMS
Declare a structure type and typedef a pointer to the structure type as follows: struct MYSTRUCT { int x;     int y;   };

typedef struct MYSTRUCT* PMYSTRUCT; MYSTRUCT is a structure type and PMYSTRUCT is a typedef for a pointer to MYSTRUCT. Declare and initialize the following variables: struct MYSTRUCT var1 = {0, 0}; PMYSTRUCT var2 = &var1; Putting a watch on "(PMYSTRUCT) &var2" produces the following error:

Visual C++ 1.0 and 4.0
CXX0017: Error: symbol 'PMYSTRUCT' not found

Visual C++ 2.x
CXX0034: Error: types incompatable with operator

However, putting a watch on "(MYSTRUCT *) &var2" is successful.

<div class="cause_section">

CAUSE
The typedef declares a new name for a type, but it does not define a new type. The typecast attempted in the debugger requires the name of a defined type.

<div class="resolution_section">

RESOLUTION
Use the defined type in the typecast, rather than using the name declared with the typedef.

Keywords: kbbug kbide kbdebug kbprb KB119501

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.