Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

증상

다음 시나리오를 고려하십시오.

  • Microsoft Visual Studio 2008 서비스 팩 1 (SP1)에 있는 클래스 또는 구조체에서 바이트를 로드 하는 응용 프로그램 만들기

  • /O2 최적화 옵션 또는 /Ox 최적화 옵션 설정.

  • x64 릴리스 구성을 사용 하 여 응용 프로그램을 컴파일 플랫폼입니다.

이 시나리오에서는 구조체 멤버 또는 클래스 멤버에 액세스 하려면 생성 된 오프셋이 잘못 되었습니다.

만 때 구조 크기 및 오프셋 또는 클래스 크기 및 오프셋 같음 다음 쌍 중 하나에이 문제가 발생 합니다.

  • (14,13)

  • (15,13)

  • (22,21)

  • (23,21)

  • (30,29)

  • (31,29)

해결 방법

핫픽스 정보

지원 되는 핫픽스를 Microsoft에서 출시 되었습니다. 그러나이 문서에서 설명 하는 문제를 해결 하는 데 사용 됩니다. 이러한 특정 문제가 발생 한 시스템에만 적용 됩니다. 이 핫픽스는 추가 테스트가 필요할 수 있습니다. 따라서이 문제로 심각 하 게 영향을 받지 않습니다이 핫픽스가 포함 된 다음 Visual Studio 2008 서비스 팩이 나올 때까지 기다리는 것이 좋습니다.

이 문제를 즉시 해결 하려면 핫픽스를 얻으려면 Microsoft 고객 지원 서비스에 문의 합니다. Microsoft 고객 기술 지원부 전화 번호 및 지원 비용에 대 한 정보를 전체 목록은 다음 Microsoft 웹 사이트를 방문.

http://support.microsoft.com/contactus/?ws=support참고: 특별 한 경우에 Microsoft 기술 지원 전문가가 특정 업데이트로 문제를 해결할 수 있는지 결정 하는 경우 일반적으로 지원 요청에 따른 비용이 취소 될 수도 있습니다. 추가 지원 질문과 특정 업데이트가 필요 하지 않은 문제에는 일반 지원 비용이 적용 됩니다.

전제 조건

이 핫픽스를 적용 하려면 설치 된 Visual Studio 2008 서비스 팩 1 있어야 합니다.

다시 시작 요구 사항

이 핫픽스를 적용 한 후 컴퓨터를 다시 시작할 필요가 없습니다.

핫픽스 대체 정보

이 핫픽스는 다른 핫픽스를 대체하지 않습니다.

파일 정보

이 핫픽스의 영어 버전은 다음 표에 열거된 파일 특성 (또는 그 이후의 파일 특성)을 가지고 있습니다. 이러한 파일의 시간과 날짜는 협정 세계시(UTC)로 나열되었습니다. 파일 정보를 볼 때는 로컬 시간으로 변환됩니다. UTC와 로컬 시간의 시차는 제어판의 날짜 및 시간 항목에서 표준 시간대 탭을 사용하여 찾을 수 있습니다.

파일 이름

파일 버전

파일 크기

날짜

시간

플랫폼

C2.dll

15.0.30729입니다. 4082

2,283,320

2009 년 3 월 19 일

05:13

x86

C2.dll

15.0.30729.4082

2,36 1,656

2009 년 3 월 19 일

05:13

x86

C2.dll

15.0.30729.4082

3,01 7,528

2009 년 3 월 19 일

05:13

x64

Link.exe

9.0.30729.4082

1, 0 54,520

2009 년 3 월 19 일

05:13

x64

Link.exe

9.0.30729.4082

799, 032

19-Mar-2009

05:13

x86

해결 방법

이 문제를 해결 하려면 구조 또는 클래스의 가장 작은 여러 8 바이트 크기를 확장 하는 데 하나 이상의 더미 "서명 되지 않은 char" 구성원을 추가 합니다. 예를 들어, 14 바이트 16 바이트 수를 확장 합니다.

상태

Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.

자세한 내용

소프트웨어 업데이트 용어에 대한 자세한 내용을 보려면, 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서를 확인하십시오.

Microsoft 소프트웨어 업데이트를 설명 하는 데 사용 되는 표준 용어에 대 한 824684 설명

이 문제를 재현하는 단계

  1. Test.cpp 라는 Visual Studio 2008 s p 1에서 다음 코드를 사용 하 여 응용 프로그램을 만듭니다.

    typedef struct DskDecimal
    {
    unsigned char precision;
    unsigned char scaleFactor;
    unsigned short value[ 5];
    unsigned char maxPrecision;
    unsigned char maxScaleFactor;
    } DskDecimal;

    int main()
    {
    DskDecimal decimal;
    decimal.maxScaleFactor = 4;
    DskDecimal self = decimal;
    return self.maxScaleFactor;
    }
  2. 다음 명령을 사용 하 여 응용 프로그램을 컴파일하십시오.

    cl test.cpp /O2 /MD

예상된 된 결과 4입니다. 그러나 실제 결과 0입니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×