델파이로된 프로그램을 세개의 프로젝트로 나누어 만든후 메인이 되는폼만 Exe로
생성을 하고 나머지 두개는 DLL파일로 만들어서 메인쪽에서 호출하였습니다.
그런데 DLL을 호출한 후 계속적으로 다른 프로그램을 진행하면 정상적으로 동작하는
데 DLL을 호출한 후 바로 종료 버튼을 누르면 프로그램이 메모리상에 남고 이전
화면으로 돌아가지 않는 현상이 계속 발생합니다.
아마도 핸들값제어에 문제가 있는 것으로 생각되는 데 이것을 해결할수 있는 방법이
없을까요?
DLL을 호출할때도 프로그램은 단 하나만 실행된것 처럼 하기위해 핸들값을 넘겨주는
처리를 하고 있습니다. 순차적으로 진행은 되는데, 메인에서 DLL호출한후 종료를
하면 호출이전 화면으로 돌아오지 않고 종료되는 현상이 생깁니다. 실제로는
메모리에 그대로 남아 있구요..
> 델파이로된 프로그램을 세개의 프로젝트로 나누어 만든후 메인이 되는폼만 Exe로
> 생성을 하고 나머지 두개는 DLL파일로 만들어서 메인쪽에서 호출하였습니다.
> 그런데 DLL을 호출한 후 계속적으로 다른 프로그램을 진행하면 정상적으로 동작하는
> 데 DLL을 호출한 후 바로 종료 버튼을 누르면 프로그램이 메모리상에 남고 이전
> 화면으로 돌아가지 않는 현상이 계속 발생합니다.
> 아마도 핸들값제어에 문제가 있는 것으로 생각되는 데 이것을 해결할수 있는 방법이
> 없을까요?
> DLL을 호출할때도 프로그램은 단 하나만 실행된것 처럼 하기위해 핸들값을 넘겨주는
> 처리를 하고 있습니다. 순차적으로 진행은 되는데, 메인에서 DLL호출한후 종료를
> 하면 호출이전 화면으로 돌아오지 않고 종료되는 현상이 생깁니다. 실제로는
> 메모리에 그대로 남아 있구요..
>
안녕하세요. 질문의 요지가 무엇인지 잘 모르겠습니다 ^^;
구체적으로 어떻게 DLL 을 호출하시는지는 써주셔야 정확한 답변을 해드릴수 있습니다.
참고로 DLL 의 경우는 코드는 메모리에 딱! 한번만 적재 됩니다. 하지만 그 DLL 에서 사용하는 변수는 다시 만들어 집니다. 더 쉽게 DLL 을 사용하는 프로그램이 100개라면 메모리에는 지동으로 단 한개의 코드만 만들어집니다. 각각의 프로그램은 그 부분을 공유합니다. 대신에 변수는 따로 메모리를 할당해야 맛(?) 가는 사태가 없겠죠.