문제

먼저,

사용 솔직한 C ++, ATL이 없으면 MFC가 COM 객체 인터페이스를 사용하려고 시도합니다.

사용 올리 뷰 (OLE/COM 객체 뷰어) - IDL 코드를 엔지니어링하는 데 사용됩니다.

이 단계에서 사용합니다 미드 컴파일러, 이제 다음을 제작하는 데 어려움을 겪고 있습니다.

CMD 라인의 구문 :

midl /nologo /env win32 /tlb ". s8_.tlb" /h ". s8_.h" /iid ". s8_i.c"s8.idl

  • 해당 .TLB (유형 라이브러리)
  • a .h (헤더)
  • IID 정의에는 파일 (*_i.c)이 포함됩니다.
  • 프록시 (*_p.c)

MIDL 컴파일러 오류 :

S8.idl (513) : 오류 Midl2025 : 구문 오류 : "s8simobject"근처의 유형 사양을 기대합니다.

    HRESULT LinkSimObjects(
                    [in] S8SimObject* SourceObject, ####line 513 ####
                    [in] S8SimObject* DestObject,
                    [in] float TravelTime);
도움이 되었습니까?

해결책 2

MIDL 컴파일러 오류

s8.idl (513) : 오류 20125 년 중반 : 구문 오류 : 근처에 유형 사양을 기대합니다 "s8simobject"

해결되었습니다

을 추가하다 선언 선언 - IDL 파일 상단 :

  • "ocidl.idl"가져 오기;
  • 인터페이스 s8simobject;

다른 팁

글쎄, 나는 여기서 당신의 질문을 실제로 이해하지 못하지만 다음은 도움이 될 것입니다.

  • 공개 열거 정의에는 자신의 것이 필요합니다 uuid 정말로 공개적으로.
  • 나는 그 열거적인 정의가 실제로 일부 인터페이스 방법에 사용되지 않는 한 유형-시각으로 들어 가지 않는다는 것을 알았습니다. 나는 이것의 이유를 모른다. 아마도 나는 단순한 것을 놓쳤을 것이다 (라이브러리 블록에 그 열거를 추가하는 것 등).
  • short 일반적으로 단일 정밀 부동산 지점이 아닌 짧은 정수를 의미합니다.
  • 동등한 float ~이다 single VB에서, 그러나 내가 당신의 다른 질문에서 보았 듯이, 나는 당신이 실제로 교체를 의미한다고 생각합니다. single ~와 함께 float.

그건 그렇고, 하나의 최소 (컴파일 가능한) IDL 파일 (대부분의 정의를 제거)을 게시하는 것이 좋습니다. 이것은 예를 들어 사용하는 것처럼 혼란에 대비합니다. IS8Simulation 당신의 텍스트에서 S8SimObject 복사 한 IDL 스 니펫에서. 또한 예상 결과와 예상치 못한 (귀하를 위해) 오류를 지정하면 도움이됩니다.

편집하다

글쎄, 지금 삽입 한이 컴파일 오류는 간단합니다. S8SimObject 정의되지 않았습니다. 메소드 선언에서 항상 인터페이스를 참조해야합니다 (IS8Simulation), 인터페이스를 구현하는 코 클라스에 절대.

기존 IDL 파일을 여기에서 바꾸고 있다고 말했듯이 : 기본 목표는 무엇입니까? 원래 IDL 파일이 항상 사용하는 경우 S8SimObject, 아마도 유일한 문제는 S8SimObject IDL 파일 상단에 포함되지 않습니까? 유형-자기 정의라면 S8SimObject 주변에서는 Oleview를 사용 하여이 인터페이스의 IDL을 내보낼 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top