특정 DLL 캡슐화 객체의 경우 Liu Yi의 "DLL Accapsulation and Call 객체 기술"및 책의 소스 코드를 참조하십시오.
Delphi를 사용하여 DLL을 컴파일하는 과정에서 이상한 문제를 겪었습니다.
1. Delphi가 생성 한 DLL 프로젝트는 다음과 같습니다. Sharemem은 라이브러리의 사용 조항 및 프로젝트의 첫 번째 단위 여야합니다. DLL 프로젝트와 DLL을 사용한 프로젝트는 Sharemem 장치를 참조해야한다고 언급합니다.
프로젝트에 Sharemem 장치를 추가하는 것이 가장 좋습니다. 실제로 사용하면 객체가 스트링 유형의 특성이있을 때 프로젝트와 DLL 사이에 전달되는 것이 좋습니다.
2. DLL 기능을 호출하는 정의 문제 :
DLL에서 출력 할 때 : 기능 ABC : IINterface;
함수 호출은 프로그램의 다음과 같이 정의됩니다.
유형
tfunc = function : iinterface;
이상한 오류가 발생하며 DLL에 정의 된 것과 동일하게 정의되어야합니다.
유형
tfunc = 함수 : iinterface;
3. DLL에서 인터페이스를 사용하는 경우 사용 후 DLL에서 객체가 해제되기 전에 NIL로 설정하십시오.
4. Delphi의 DLL을 디버깅 : DLL을 디버깅 할 때 중단 점을 추가 할 수없는 문제가 종종 발생합니다. 컴파일 된 DLL의 출력 경로가 DLL을 호출하는 기본 프로그램 경로 설정과 동일하며 절대 경로 여부에 관계없이 DLL의 설정을 확인하십시오.
5. "DLPHI의 DLL 캡슐화 및 호출 객체 기술"에서 캡슐화 객체에 대한 DLL의 주요 제한은 다음과 같습니다.
??
2. . .
3. . .
DLL의 메인 프로그램에서 객체를 사용하는 방법에 대한 제한이없는 것 같습니다. 왜 그런지 궁금합니다.