2011-02-01 3 views
0

저는 컴퓨터 모델에서 X-Copying으로 프로그램을 만들었습니다. 버튼을 클릭하면 실행이 시작되고 잘 돌아갑니다. 그러나 프로그램을 닫지 않고 단추를 다시 클릭하면 실행 프로세스가 끝난 후 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."라는 오류 메시지가 나타납니다.특정 오류 : "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."

Public Sub Main1(ByVal FileName As String) 

    AddHandler myModel.Init, AddressOf OnInitilize 
    AddHandler myModel.IterBottom, AddressOf OnIterationBottom 
    AddHandler myModel.IterTop, AddressOf OnIterationTop 
    AddHandler myModel.Converged, AddressOf OnIterationConverge 
    AddHandler myModel.End, AddressOf OnFinished 
    AddHandler myModel.OnMessage, AddressOf OnMessage 
    AddHandler myModel.OnModsimError, AddressOf OnMessage 
    XYFileReader.Read(myModel, FileName) 
    Dim myModsim As New Modsim 
    Csu.Modsim.NetworkUtils.ManageUnits.Unit_Conversion_Controller(myModel) 
    myModsim.RunSolver(myModel) 

End Sub 

오류가 "myModel"에 대한 발생합니다 나는 여기에 서브 주요 I X는-복사 한 비주얼 스튜디오를 작성했습니다! 왜 두 번째 실행에서 참조 된 null인지 알 수 없습니다!

+1

xcopy는 그것이 당신이 생각하는 것을 의미하지 않는다고 생각합니다. 왜 당신이 이해하지 못하는 코드를 사용하고 있습니까? 어떤 라인에서 예외가 발생합니까? – Oded

+0

혼자서 작성할 수 있으면 좋겠지 만 오픈 소스는 아닙니다. – Jalal

+0

마지막 줄에 오류가 발생합니다. myModsim.RunSolver (myModel) – Jalal

답변

0

처음 실행 한 후에는 myModelNothing으로 설정됩니다. 코드를 단계별로 실행하여 어디에 있는지 찾아보십시오.

이렇게해야하는 경우 myModel 변수에 대한 새 인스턴스를 만듭니다.

+0

글쎄, 중단 점으로 검사를 시도했지만 마지막 줄에서 오류가 발생합니다. "myModsim.RunSolver (myModel)" 불행히도 myModel이 가장 중요한 개체입니다 코드에서 사용되며 프로그램을 통해 자주 사용됩니다. 내가 물어 보자! 모든 오브젝트와 변수가 이전 실행에서 채워지기 때문에 다음 실행시에이 오류가 발생한다고 생각하십니까? – Jalal

+0

실제로 null 참조가 다른 것을 의미한다는 것을 알고 있지만 실제로 혼란 스럽습니다. – Jalal

+0

글쎄, 처음에는 RunSolver 메서드에서 사용되는 변수 중 하나 이상 (null)이 설정되었습니다. . myModsim은 몇 줄 뒤로 만들어 졌기 때문에 myModel의 속성이이를 유발해야한다고 생각합니다. null 값에 대해서는 myModel의 모든 특성을 점검하십시오. – decyclone

0

decyclone에 포인트가 있습니다. 중단 점을 넣고 한 줄씩 끝내십시오. 또한 XYFileReader 개체를 살펴볼 것입니다. 다른 한편, 대부분의 시간은 내가 다른 객체의 함수를 호출하고 거기에 아무것도없는 객체로 무언가를하기 때문에 그러한 오류가 발생합니다. 따라서 Unit_Conversion_Controller 내부에서도 확인하십시오.

오류 메시지가 나타나면 어떤 줄에 오류가 있습니까?

+0

마지막 행 : 'myModsim.RunSolver (myModel)'. – Jalal

관련 문제