문제

회사는 내가 일하는,우리는 모두 개발하 GUI C#지만 응용 프로그램 커널이 주로 개발한에서 Delphi5(에 대한 역사적인 이유로),의 많은 구성 요소에서 만들어 COM+.이와 관련하여 아주 특정한 종류의 응용 프로그램은 내 두 개의 질문:

  • 경험이 풍부한 사람들 델파이 그리고/또 COM,당신은 어떤 workrounds 와 함께 작동차 TLB 하시겠습니까?의 일부 버그가 있습니다:IDE 충돌하는 동안 버전의 큰 TLB,분실의 방법 Id,TLB 손상,etc.여기,우리는 모든 솔루션입니다.실제로 우리가려고 하는 업그레이드 하는 새로운 2007 버전입니다.하지만 새 IDE TLB 인터페이스가 동일한 버그는 우리는 발견하기 전에.

  • 당신은 어떻게 제어 TLBs versions?TLB 파일에서는 바이너리 형식과 갈등 해상도가 매우 어려운 일입니다.우리는 그것을 시도 하 내보내기 인터페이스 설명을 IDL 및 커밋로 CVS,그러나 우리는 발견하지 않았는 좋은 방법을 생성하 TLBs 에서 IDL 를 사용하여 델포이 등이 있습니다.또한,MIDL 도구는 Microsoft 에서 제공하는지 분석을 올바르게 IDL 파리에서 수출 delphi.

도움이 되었습니까?

해결책

나는 당신을 생각해야에서 좋은 모습 Delphi2009.

델파이 2009 년에는 변경 COM 지원을 포함하여 텍스트 기반 교체 바이너리 TLB 파일이 있습니다.

에서 더 많은 읽을 수 있습니다 크리스 Bensen 의 블로그.

다른 팁

먼 과거에(기 전에 내가 일하기 시작했 CodeGear)나 이상한 델파이된 IDL 언어 IDE 제시하고 썼다는 내 자신의 IDL 고 그것을 컴파일을 사용하 MS midl.이것은 크게 일;니,IIRC,었는지 확인하 dispids(id 특성)을 정확한 자동화 인터페이스(dispinterfaces)에 대한 속성 정&setters-이 고정된 tlibimp 예상되지만 midl 지 않았 보장합니다.

그러나,지금은 델파이 2009 년을 사용한 안전한 하위 집합의 midl 구문을 포함한 컴파일러를 위한 이 midl 상자에 통합되어 IDE 이러한 문제해야 될 일이 지났습니다.

우리는 또한 단지 설치 Delphi2009 년 및 보 향상 지원을 위한 Typelibraries.그러나 나가 COM 고 형식 라이브러리는 꽤 많은 시간과 여기에는 나의 일반적인 문제점을 발견했습니다.나는 것에 동의 아이 버그가 모든 방법을 Delphi2006 년(우리의 이전 버전 사용하여 2009).

  • 항상 모든 파일을 쓰기 전에 개방.누구나 알고 있는 사실이지만,때로 작동 원본어 때때로 우리는 이렇게 하는 것을 잊지 및 제거하려고 플래그는 읽기 전용 후 파일을 열-델파이 없으.보 tlb 가능합니다.*
  • 편집하는 경우 독립 typelibrary 프로젝트가 있어야 합 열려 있습니다.어떤 이유에는 경우 형식 라이브러리는 자신에 그것을 저장하지 않습니다.을 만들 빈 프로젝트를 열고 다음의 typelibrary.어떤 이유로 이 형식 라이브러리에 저장됩니다.
  • 당신의 유형은 라이브러리를 사용하여 응용 프로그램이나 COM+지 확인하는 응용 프로그램을 종료하거나 COM+용하기 전에 개방형 라이브러리입니다.열려 있는 앱을 방지하는 형식 라이브러리에서 저장됩니다.

그러나 나는 당신의 최고의 솔루션은 아마이었습니다.당신이 얻은 유니코드 지원 too.

를 사용하여 델파이 2009 년에는 크게 촬영의 많은 고통을 거대한 TLB 파일 변환의 기존 개체는 고통이었지만,우리 com 객체를 사용하지 않는 모든 타사 라이브러리입니다.

우리는 마이그레이션의 gui 를 통해 응용 프로그램 라이브러리에 한 업체 릴리스를 지원하는 버전이 있습니다.

동일한 경험을 가진 TLB 인터페이스를 여기:우리는 단순히 사용을 중단했습니다.

우리는 작업으로 여러 가지 별도의 IDL 파일(손으로 구성)의 다른 부분을 위한 프레임워크를 사용하여#포함한 구문을 포함으로 그들을 IDL 의 실제 응용 프로그램을 생성하는 단 하나 tlb 를 사용하여 MIDL 및 tlibimp 니다.는 경우 응용 프로그램에는 없는 IDL 그것의 자신의,미리 컴파일된 버전의 다른 framework TLB 파일을 사용할 수 있습니다.

할 때마다 프레임워크가 새로운 버전에,스크립트를 실행을 다시 생성 GUID 에 필요한 모든 인터페이스에서 IDL 파일이 있습니다.

이것은 우리를 잘 제공을 위해 많은 년을 통해 새로운 Delphi2009 년 IDL/TLB 도구해야 할 것이지만에 통합되어 IDE 이지만,또한 다양한 올 때 자동화 구축 등등.기다릴 수 없어 내 손을 더럽으로 일부 실험!

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