그래서 실행 파일을 만들려고 합니다. 내가 실행중인 프로젝트는 X86을 기반으로 하고 있습니다.
프로젝트를 빌드 할 때 모든 것이 잘 보이고 실행 파일이 생깁니다. 그러나 실행 파일은 실행되지 않습니다. 다음과 같은 오류가 발생합니다.
'child' is not a child control of this parent.
다음으로 예외 :
Class not registered (Exception from HRESULT: 0X80040154 (REGDB_E_CLASSNOTREG).
모든 것이 X86인지 확인하고 솔루션을 정리하고 다시 빌드했습니다. 하지만 여전히 이러한 오류가 발생합니다. (X64 및 모든 PC로 전환하려고 시도했지만 해당 옵션은 DeviceBase.dll을 찾을 수도 없습니다) 디버깅을 시작했을 때 코드의 특정 기능으로 바로 이동했습니다.
protected override void Call(bool calling)
{
if (calling)
{
if (components != null)
{
components.Call();
}
}
//This is where I get the exception saying
//cannot access a called object
base.Call(calling);
}
스택 추적은 다음과 같은 것을 제공합니다.
Message=Cannot access a disposed object.
Object name: 'Icon'.
ObjectName=Icon
Source=System.Drawing
component는 null로 시작하고 호출은 초기에 false입니다. 이 예외를 적절한 방식으로 어떻게 처리 할 수 있습니까? 조언을 주시면 감사하겠습니다.
모두의 도움에 감사드립니다. 하지만 장치 소프트웨어 특정 파일 (.dll)을 가져 와서 interop 유형을 false로 설정해야했습니다. 그게 속임수였습니다.
출처 : https://stackoverflow.com/questions/55365087/how-can-i-catch-the-exception-so-it-doesnt-break