MIDL 생성된 형식 라이브러리의 식별자 대/소문자를 변경합니다.

기술 자료 번역 기술 자료 번역
기술 자료: 220137 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

대/소문자만 다르고 두 식별자가 있을 때 두 번째 식별자 대/소문자는 첫 번째 대 반영하도록 변경됩니다.

원인

IDL 및 형식 라이브러리 대/소문자를 의도적으로 않습니다. 동일한 다른 컨텍스트에서 경우에도 형식 라이브러리를 생성하도록 MIDL 에 의해 호출되는 Ole 자동화 코드를 첫 번째 이름 및 이름이 같은 모든 후속 발생 IDL에서 걸립니다.

해결 방법

다음과 같은 해결 방법을 사용하여 이 문제를 방지할 수 있습니다.
  • IDL 파일이 다른 가져오기 의 경우 이 문제가 발생할 가능성이 높습니다. 데이터를 다른 IDL IDL 파일을 가져오는 대신 해당 형식 라이브러리를 가져옵니다.
  • 같은 이름을 이미 새 식별자 소개 때 IDL 파일이 없는 것을 확인하십시오.
  • 구성 요소 설명서를 형식 라이브러리에 있는 생성된 식별자를 매핑하십시오. 대/소문자만 다르고 식별자를 사용하여 다른 컨텍스트에 메서드, 다른 있는 됩니다 하므로 이 정말 어려운 없습니다 매개 변수, 구조 및 등. 구성 요소 설명서 불일치가 발생하지 않도록 도와줍니다.

현재 상태

이것은 의도적으로 설계된 동작입니다.

추가 정보

IDL 파일이 서로 다른 두 있으면 동일한 식별자 이름을 있지만 다를 경우에만 경우 다음 형식 라이브러리, MIDL 생성 두 번째 식별자 같은 첫 번째 경우로 변경됩니다.

동작을 재현하는 방법

  1. IDL 파일 (name.idl) 만듭니다. 다음 예제를 참조하십시오:
    // Test program to demonstrate capitalization bugs in MIDL 5.02.0235
    import "oaidl.idl";
    import "ocidl.idl";
    
       [
          uuid(DB9DDB0D-8834-11D1-8278-00A024A41CC8),
          dual,
          oleautomation,
       ]
       interface Interface1 : IDispatch {
          [ id(4), helpstring("") ]
          HRESULT OtherMethod (
             // This parm name will affect the case of the subsequent method name.
             [in] VARIANT_BOOL mYnAme );
       };
    
    
       [
          uuid(DB9DDB0C-8834-11D1-8278-00A024A41CC8),
          dual,
          oleautomation,
       ]
       interface Interface2 : IDispatch {
          [ id(5), helpstring("") ]
          // The method name gets changed.
          HRESULT MyName ();
       };
    
    
    [  uuid(2A216780-BC52-11D2-B94F-00C04F81B63A), version(1.0),
    ]
    library MIDLTST
    {
       importlib("stdole32.tlb");
    
       [
          uuid(65B5C950-883D-11D1-8278-00A024A41CC8),
          helpstring("Exercise various supported types.")
       ]
       coclass MIDLTest {
          [default] interface Interface1;
          interface Interface2;
       };
    };
    						
  2. MIDL 컴파일러에서를 형식 라이브러리를 생성할 수 있습니다. 명령은 MIDL name.idl을 사용하십시오.
  3. OLEVIEW에서 생성된 형식 라이브러리를 엽니다. 다음 참조 OLEVIEW 출력.
    // Generated .IDL file (by the OLE/COM Object Viewer)
    // 
    // typelib filename: <could not determine filename>
    
    [
      uuid(2A216780-BC52-11D2-B94F-00C04F81B63A),
      version(1.0)
    ]
    library MIDLTST
    {
        // TLib :     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
        importlib("STDOLE2.TLB");
    
        // Forward declare all types defined in this typelib
        interface Interface1;
        interface Interface2;
    
        [
          uuid(65B5C950-883D-11D1-8278-00A024A41CC8),
          helpstring("Exercise various supported types.")
        ]
        coclass MIDLTest {
            [default] interface Interface1;
            interface Interface2;
        };
    
        [
          odl,
          uuid(DB9DDB0D-8834-11D1-8278-00A024A41CC8),
          dual,
          oleautomation
        ]
        interface Interface1 : IDispatch {
            [id(0x00000004)]
            HRESULT OtherMethod([in] VARIANT_BOOL mYnAme);
        };
    
        [
          odl,
          uuid(DB9DDB0C-8834-11D1-8278-00A024A41CC8),
          dual,
          oleautomation
        ]
        interface Interface2 : IDispatch {
            [id(0x00000005)]
            HRESULT mYnAme();
        };
    };
    
    						
  4. 여기에 메서드 이름은 Interface2 MyName mYnAme로 변경되었습니다.

속성

기술 자료: 220137 - 마지막 검토: 2006년 9월 29일 금요일 - 수정: 2.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Platform Software Development Kit-January 2000 Edition?을(를) 다음과 함께 사용했을 때
    • Microsoft Windows NT Server 4.0 Standard Edition
    • Microsoft Windows NT Workstation 4.0 Developer Edition
키워드:?
kbmt kbbug kbpending KB220137 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com