글쎄, 일반적으로 예, 명시적으로 DllMain을 사용하는 경우입니다. 일반적으로 모든 프로젝트 설정은 샘플에서 가져와야 합니다. Megaquotes는 DllMain을 명시적으로 등록할 것을 권장하지만 델파이로 작성하면 DllMain을 등록할 수 없지만 모든 첨부/분리 를 초기화 및 종료에 넣습니다.
전역 수준에서 두 개의 정적 배열을 추가했다는 사실을 제외하고 전체 프로젝트는 DLLSample에서 가져옵니다.
테스터에서 시작한 Expert Advisor에서 원시 함수를 호출합니다. 테스트가 끝나면 DLL이 메모리에 보관됩니다. 여기에 그러한 상황이 있습니다.
주요 기능 프로토타입이 올바르게 선택되었습니까?
ATTACH/DETACH 흐름을 관리하는 방법은 무엇입니까?
그것에 대해 어디에서 읽을 수 있으며 예와 함께 바람직합니까?
Jeffrey Richter "전문가를 위한 Windows"
나는 당신에게 모든 건강을 기원합니다!
이 주제에 관심이 있었고 터미널(DLLSample 프로젝트)과 함께 제공되는 간단한 예제를 사용하여 논의 중인 주제를 확인하기로 결정했습니다.
VS 6.0에서 컴파일한 후 구운 dll은 터미널에서 성공적으로 작동하지만 자체적으로 언로드되지는 않습니다!
로드되지 않을지 어떻게 압니까? DLLSample은 저에게 잘 맞습니다.
로드되지 않을지 어떻게 압니까? DLLSample은 저에게 잘 맞습니다.
간접적으로 - 터미널을 닫을 때까지 dll 파일의 본문을 덮어쓰지 않습니다.
.
사실, 전역 수준에서 선언된 정적 배열이 몇 개 있는데 이것이 영향을 미칠 수 있습니다.
.
따라서 프로젝트를 올바르게 설정하고 "조심스럽게"등록하는 방법을 이해하고 싶습니다.
Jeffrey Richter "전문가를 위한 Windows"
감사합니다. 살펴보겠습니다.
나는 당신에게 모든 건강을 기원합니다!
이 주제에 관심이 있었고 터미널(DLLSample 프로젝트)과 함께 제공되는 간단한 예제를 사용하여 논의 중인 주제를 확인하기로 결정했습니다.
VS 6.0에서 컴파일한 후 구운 dll은 터미널에서 성공적으로 작동하지만 자체적으로 언로드되지는 않습니다!
주요 기능은 다음과 같습니다.
이제 질문은 Windows에서 dll이 작동하는 방식을 실제로 이해하고 VS 6.0(예:)에서 프로젝트에서 올바르게 컴파일하는 방법을 알고 있는 감정가를 위한 것입니다.
주 기능 프로토타입이 올바르게 선택되었습니까?
ATTACH/DETACH 흐름을 관리하는 방법은 무엇입니까?
그것에 대해 어디에서 읽을 수 있으며 예와 함께 바람직합니까?
무슨 공격? 어떤 세부 사항? 너 뭐야? 일반 dll의 DllMain 함수는 전혀 필요하지 않습니다! 링커가 dll-ku에 사용자 대신 삽입합니다.
http://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.80).aspx
/MD, /MT, /LD(런타임 라이브러리 사용)
/LD
DLL을 생성합니다.
/DLL 옵션을 링커에 전달합니다. 링커는 DllMain 함수를 검색하지만 필요하지 않습니다. DllMain 함수를 작성하지 않으면 링커는 TRUE를 반환하는 DllMain 함수를 삽입합니다.
DLL 시작 코드를 연결합니다.
http://msdn.microsoft.com/en-us/library/ms682583(VS.85).aspx
간접적으로 - 터미널을 닫을 때까지 dll 파일의 본문을 덮어쓰지 않습니다.
.
사실, 전역 수준에서 선언된 정적 배열이 몇 개 있는데 이것이 영향을 미칠 수 있습니다.
이전에 주장한 것처럼 실제로 DLLSample이 없습니까? 그래서.
따라서 프로젝트를 올바르게 설정하고 "조심스럽게"등록하는 방법을 이해하고 싶습니다.
이전에 주장한 것처럼 실제로 DLLSample이 없습니까? 그래서.
글쎄, 일반적으로 예, 명시적으로 DllMain을 사용하는 경우입니다. 일반적으로 모든 프로젝트 설정은 샘플에서 가져와야 합니다. Megaquotes는 DllMain을 명시적으로 등록할 것을 권장하지만 델파이로 작성하면 DllMain을 등록할 수 없지만 모든 첨부/분리 를 초기화 및 종료에 넣습니다.
전역 수준에서 두 개의 정적 배열을 추가했다는 사실을 제외하고 전체 프로젝트는 DLLSample에서 가져옵니다.
테스터에서 시작한 Expert Advisor에서 원시 함수를 호출합니다. 테스트가 끝나면 DLL이 메모리에 보관됩니다. 여기에 그러한 상황이 있습니다.
전역 수준에서 두 개의 정적 배열을 추가했다는 사실을 제외하고 전체 프로젝트는 DLLSample에서 가져옵니다.
테스터에서 시작한 Expert Advisor에서 원시 함수를 호출합니다. 테스트가 끝나면 DLL이 메모리에 보관됩니다. 여기에 그러한 상황이 있습니다.
아, 그래서 문제는 테스터에 있습니다. 그리고 이것은 스크립트도 지표도 아닌 조언자입니다. 이 Expert Advisor는 테스터가 아닌 정상적인 조건에서 어떻게 작동합니까?
그건 그렇고, "전역 수준에서 두 개의 정적 배열"은 어떤 식으로든 dll에 영향을 미치지 않아야 합니다. 특히 dll에서 전혀 액세스하지 않는 경우.
시원한. 내 메시지에서 텍스트의 일부가 누락되어 귀하가 답장을 보냈지만 삭제하지는 않았습니다. 포럼에 버그가 있습니다.
아, 그래서 문제는 테스터에 있습니다. 그리고 이것은 스크립트도 지표도 아닌 조언자입니다. 이 Expert Advisor는 테스터가 아닌 정상적인 조건에서 어떻게 작동합니까?
사실, 1년 전에 고문이 있었을 때도 dll과 관련된 모든 문제를 겪었습니다.
시스템 테스터에 대한 테스터의 실행을 확인했습니다.
그러나 ... 프로그램의 비뚤어진 손과 오류에 대해 모든 사람을 여러 번 생략했습니다.
신은 누군가가 그런 상사가 될 것을 금합니다 :-(.
추신: VC 2005 런타임 라이브러리와 연결된 dll: 표시기 및 스크립트 이후
모든 것이 잘 로드됩니다.
사실, 1년 전에 고문이 있었을 때도 dll과 관련된 모든 문제를 겪었습니다.
시스템 테스터에 대한 테스터의 실행을 확인했습니다.
그러나 ... 프로그램의 비뚤어진 손과 오류에 대해 모든 사람을 여러 번 생략했습니다.
신은 누군가가 그런 상사가 될 것을 금합니다 :-(.
추신: VC 2005 런타임 라이브러리와 연결된 dll: 표시기 및 스크립트 이후
모든 것이 잘 로드됩니다.
다시 한 번 반복합니다. dll에는 아무 문제가 없습니다. 문제가 있는 경우 이는 프로그래밍의 문제이며 MS나 MT 모두 여기에서 비난할 가능성이 가장 큽니다. 그리고 "이전" VC를 사용해야 한다는 사실은 어쨌든 명확해야 합니다.