나는 겉으로보기에 임의의 오류를 기록하고 싶습니다. 필자는 Delphi 작성 COM DLL을 사용하고 있습니다. 어떻게해야합니까? Application.OnException 이벤트 처리기를 사용할 수 있습니까? COM DLL 소스를 제어 할 수 있지만 호출하는 응용 프로그램은 제어 할 수 없습니다.Application.OnException은 COM Dll에서 작동합니까?
1
A
답변
5
아니요 DLL은 응용 프로그램이 아니기 때문에 응용 프로그램 변수가 없습니다.
DLL에서 예외를 처리하는 올바른 방법은 try..except
블록입니다. 가장 기본적인 기술은 수출 된 각 함수 주위에 try..except
블록을 두어 DLL 외부로 전파되기 전에 오류를 잡아내는 것입니다.
OnException이라는 자체 전역 함수를 만들고 Except 블록에서 호출하고 예외를 전달하는 등의 작업을 시도해 볼 수 있습니다. 이것이 기본적으로 Application.OnException의 기능입니다. try..except
블록 안에 넣기 위해 호출 스택의 바닥 근처에 알려진 단일 지점이 있으므로 자동으로 처리 할 수 있습니다.
2
COM DLL에서 Application.OnException이 작동하지 않는다고 생각합니다. 당신은 낮은 수준의 물건으로 바로 가야 할 수도 있습니다. 시스템 유닛에서 RaiseExceptionProc을 살펴보십시오. 그것은 당신이 원하는 정보를 얻을 수 있도록해야합니다.
관련 문제
- 1. COM DLL에서 tlbexp.exe 사용
- 2. Com DLL에서 VB6?
- 3. COM DLL에서 .NET으로 ECDSA 이동
- 4. com com DLL에서 Com Class Wrapper를 생성하는 유틸리티가 있습니까?
- 5. COM TreatAs는 언제 어떻게 작동합니까?
- 6. Com DLL에서 TLB를 만들 수 없습니다.
- 7. 왜 COM CoInitializeSecurity가 내 DLL에서 실패합니까?
- 8. 종속 DLL에서 격리 된 COM 설정을 지정하거나 실행 만하면됩니까?
- 9. .Net 및 Interop을 사용하여 COM dll에서 VBSCript를 실행합니다.
- 10. Interop DLL에서 다시 작동하는 COM dll 설치를 찾는 방법
- 11. 관리 DLL에서 실행 파일 이름 찾기, COM-볼 수
- 12. DLL에서 서비스가 실행 중입니다.
- 13. IUnknown 인터페이스 - COM \ COM + 개체의 경우?
- 14. 설치 쉴드 "빌드시 COM 추출"은 어떻게 작동합니까?
- 15. 어떻게 COM ActiveX 객체가 IE 64 비트에서 작동합니까?
- 16. 네이티브 C++ COM .dll을 .NET COM .dll로 바꿉니다.
- 17. COM 개체의 문제점 C#
- 18. dll에서 WinForms 복구
- 19. 라이선스가있는 dll에서 dll을 병합
- 20. 내부 .dll에서 GetModuleHandle
- 21. DLL에서 상수 내보내기
- 22. .NET DLL에서 typedef 내보내기
- 23. DLL에서 WPF GUI 업데이트
- 24. dll에서 함수를 호출하려면 어떻게해야합니까?
- 25. dll에서 EXE로 CALLBACK 전달
- 26. dll에서 전역 변수에 액세스
- 27. dll에서 hbm을 정의하십시오
- 28. DLL에서 CURL 사용
- 29. 다른 DLL에서 DLL 호출
- 30. DLL에서 C# 콜백