Windows 8에서 기존 응용 프로그램을 테스트 할 때 매우 이상한 충돌이 발생합니다. 주 응용 프로그램은 Delphi XE (Win32)로 작성되었으며 COM interop을 사용하여 .NET 어셈블리를 호출합니다. 사용되는 현재 .Net 버전은 3.5입니다.Windows 8의 Double.TryParse에서 산발적 인 크래시를 디버깅하려면 어떻게해야합니까?
Windows 8을 새로 설치하면 응용 프로그램이 실행될 때 갑자기 정상적으로 실행되기 전에 응용 프로그램이 최대 10 회 충돌합니다. 일단 확인을 시작하면 계속 그렇게 할 것입니다. 오류 로그 또는 오류 메시지가 표시되지 않습니다. 응용 프로그램이 작동을 멈추거나 작동을 멈 춥니 다.
저는 실제와 가상의 4 가지 Win8 설치에서 동일한 결과를 얻었습니다.
일부 원격 디버깅을 할 수 있었고 숫자가 아닌 값을 구문 분석하려고 할 때 .Net 메서드 Double.TryParse
으로 오류를 추적 할 수있었습니다.
Double.Parse
Try/Catch 블록 내에서 작동하지 않습니다.
주 어셈블리는 Delphi Prism으로 작성되었지만 VS2010을 사용하여 C#으로 작성된 테스트 어셈블리로 오류를 재현 할 수있었습니다.
.Net 4가 제대로 작동하는 것 같지만 오라클에 대한 지원이 누락되어 현재 업그레이드 할 수 없습니다.
이 프로그램은 또한 2012 년
어떤 힌트이나 제안 정말 감사하겠습니다 윈도우 서버에 이전 버전의 Windows에서 확인을 작동합니다.
추가 : C#/관리 코드로 작성된 다른 테스트 응용 프로그램에서 호출 할 때 테스트 어셈블리가 제대로 작동한다는 점을 잊어 버렸습니다. Delphi (Win32), .NET 3.5, COM InterOp 및 Windows 8의 조합 만 충돌을 일으 킵니다.
왜 갑자기 응용 프로그램이 갑자기 작동하기 시작했는지에 대해 매우 당혹 스럽습니다. 최대 10 번 충돌 한 것입니다.
Win8 시스템의 문화 설정과 관련이 있습니까? double.TryParse ("24.45", NumberStyles.Any, CultureInfo.GetCultureInfo ("en-US"), 출력 출력)과 같은 것을 시도해보십시오. – Amitd
Nope. 나는 그것을 시도했지만 응용 프로그램은 여전히 충돌합니다. – Cactus99
C# dll을 다른 C# 프로젝트의 com 참조로 추가하면 (델파이를 사용하지 마십시오)? –