2017-12-03 3 views
-5

저는 컴퓨터 1에서 작성한 프로젝트에 있었고 이제는 컴퓨터 2에서 편집하고 실행하려고했습니다. 두 컴퓨터 모두 동일한 운영 체제와 동일한 Delphi 버전을 가지고 있습니다. 나는 (아무것도 수정하지 않고) 컴퓨터 2 프로젝트를 컴파일하려고으로특정 컴퓨터에만있는 Delphi 액세스 위반

그것은이 FMX 프로젝트이고, 액세스 위반이에 System.Win.OleControls에서 발생 1. 컴퓨터에 아무런 문제가 없었다하더라도 액세스 위반이 나타났다 procedure TDelegatedOleControl.CreateControl; "OleCheck(FPersistStream.InitNew)"이 포함 된 행에 있습니다.

내 응용 프로그램의 GUI가 나타나기 전에 오류가 발생하므로 어떻게 알 수 있습니까? 내 코드에서이 문제의 원인은 무엇입니까?

일반적으로 메모에 물건을 추가하여 오류가 있음을 확인합니다. 문제가있는 곳에서 오류가 발생하기 때문에이 오류가 발생하기 전에 내가 알 수있는 방법을 알고 싶습니다.

이 예외를 무시하고 계속하면 응용 프로그램과 함께 놀고있는 것처럼 보이지만 모든 것이 예상대로 작동하기 때문에 영향을받지 않습니다. 불행히도 또 다른 문제가 있습니다. 앱 안의 프레임에 TWebbrowser가 있습니다. 컴퓨터 1에서는 모든 것이 잘 작동했지만 컴퓨터 2에서는 사이트를로드하려고 시도 할 때 액세스 위반 오류가 발생했습니다. 그러나 이것은 앱의 사용에 영향을주지 않습니다. 이들의 매우 대부분이 같이 나에게 정말 중요하지 않습니다 if FIsPostQuitMessage then

포함하는 행의 function TPlatformWin.HandleMessage: Boolean;FMX.Platform.Win에 있었다있는 40 오류 같은 약

에서는 WebBrowser의 슬로우하는 또한 오류가 발생하지 않는 컴퓨터 1을 계속 사용할 수 있지만 컴퓨터 2는 약간 빠르기 때문에이 오류를 컴퓨터 2에서 해결하는 것이 좋습니다.

무엇이이 오류를 일으킬 수 있으며 왜 그들은 컴퓨터 2에만 독점적으로 나타나고 있습니까?

업데이트

원래이 프로젝트는 내가 FMX 프로젝트로 "변환"을 관리하는 VCL 프로젝트였다. 나는이 여러 버전을 전에했는데 문제가 아니었고 또한 시각적 인 구성 요소를 재사용했다. 수동으로 다시 작성하는 것은 많은 작업 이었기 때문에 고통 스럽다. 이것은 아마도 오류를 일으킬 수 있습니까? 정말 컴퓨터 (1) 모든

갱신 2

응용 프로그램 시작시 오류가 FormCreate가 호출되기 전에도 발생에 아무런 문제가 없었다으로이 이유가 될 것 보라 수 없습니다, 그래서에 Kow를 몰라 내 코드에서 아무 것도 책임지지 않는 것처럼이 오류를 추적하십시오.

갱신 3

내가 얘기를 깜빡 했네요, 내가 컴퓨터 2 프로젝트를 개발하기 시작 것을, 나는 컴퓨터 1로 이동하고 괜찮 았는데 내가 컴퓨터 2로 돌아 가려고으로 상황은 위에서 설명한 발생했다.

Update4 FormCreate 절차가 시작되기 전에 오류가 this 내가 오래 전에 IE를 제거하고 그것에 대해 잊고 this에 그것을 가리 킵니다. 이 문제는 컴퓨터 1에서와 마찬가지로 IE가 여전히 사용 가능하며 오류가 표시되지 않습니다.

+0

이 URL에서 주어진 그것을

시도 방법을 복구하는 것입니다 제안 인한 문제는 "_Both 컴퓨터가이를 ... Delphi_"두 번째 컴퓨터에 디버그를 . 먼저 디버그 DCU를 활성화해야합니다. –

+0

코드가 없거나 오류에 대한 설명이 없습니다 ... 어떻게 문제가있는 사람을 알 수 있습니까? –

+0

오류 스크린 샷을 답장 아래에 게시했습니다. PC에 액세스 할 수있는 경우 몇 시간 만에 메인 포스트로 업데이트하겠습니다. – qGold

답변

1

이 문제는 urlmon.dll에서 발생합니다. IE가 아닌 응용 프로그램에, 해결책은 제거하고 IE를 다시 설치하거나 https://www.experts-exchange.com/questions/10316551/Access-violation-fault-in-module-urlmon-dll.html

+0

으로 전달됩니다. 그게 전부라고 생각합니다. . 나는 오래 전부터 .. 이유들 때문에 IE를 삭제했다. 이것은 IE에 기반한 TWebbrowser에 영향을 줄 가능성이 있습니다. IE를 다시 설치하고 수정하면 알려 드리겠습니다. 방금 IE를 제거했음을 잊었습니다 ^^이 알림을 보내 주셔서 감사합니다. – qGold

+0

도움이된다면 답으로 표시하십시오. – BlindSniper

-2

권한 문제로 보입니다. 관리자 권한으로 애플리케이션을 실행하십시오. 디버그 포인트 나 로그를 넣어서이 에러가 어디서 발생하는지 정확히 알 수 있습니다.

+0

이 앱을 관리자로 실행하려면 어떻게해야합니까? 관리자로서 Delphi를 시작해야합니까, 아니면 내 앱이 호출되는 방식을 변경해야합니까? 또한 내 애플 리케이션은 어떤 관리 물건을하지 않습니다, 그래서이 문제를 해결할 것이라고? – qGold

+0

관리자로서 델피가 실행되지 않았습니다. – qGold

+0

자세한 예외를 공유 할 수 있습니까 ?? – BlindSniper