2009-11-27 13 views
4

저는 셰어웨어 SDK 라이브러리 (C++ 사용)를 개발 중입니다. 라이브러리는 간단한 DLL은 몇 가지 기능을 제공합니다. 그래서, 내 첫 번째 질문은 어떤 유형의 시련이 간단한 dll에 가능한가? 평가판 DLL의 기능을 차단하고 싶지 않으므로 시간 재판을 사용하는 경향이 있습니다.동적 연결 라이브러리의 시험판을 설정하는 방법은 무엇입니까?

대략 lib의 사용 시간을 추적하는 방법을 대략 이해하므로 두 번째 질문은 평가판 기간의 만료를 나타내는 방법입니다. 평가 기간이 만료

  1. 후 라이브러리를로드하는 데 실패합니다

    는 본 두 가지 아이디어가 있습니다.

    또는 평가 기간이 만료 된 후

  2. 는 라이브러리가 성공적으로로드하지만, 잔소리 화면의 어떤 종류를 표시합니다.

하지만 둘 다 매우 거친 것처럼 보이므로 이에 대한 조언을 제공해 주시겠습니까?

감사합니다.

+0

답장을 보내 주셔서 감사합니다. 재판이 만료되면 앱이 내 dll 함수 중 하나를 호출 할 때 라이브러리의 로딩을 허용하고 오류 코드를 반환하도록 다음 방법을 사용하기로 결정했습니다. – DenisL

답변

1

DLL 기능 중 하나를 호출 할 때 "만료 된 평가판 라이센스"오류를 발생시킬 수 있습니다. 사용자가보다 명확하고 이해할 수 있습니다.

my2cents 
1

(1) 만료되면 DllMain()에 실패해야합니다. DLL을 사용하는 프로그램의 가져 오기 테이블에 DLL이 있으면 좋지 않습니다.

(2)에서 선택의 폭이 넓어지고 IMHO가 더 친숙합니다.

만료일 때 내부 플래그를 설정 한 후 잔소리 대화 상자를 표시하십시오.

사용자가 내 보낸 함수를 계속 호출하면 플래그를 확인하고 DLL에 대한 모든 함수 호출을 실패합니다.

DLL에 init 함수가있는 경우 init()이 호출 될 때 만료 대화 상자를 표시하고 구현자가 자신의 프로그램을 알고 있고 존재하도록 특수 코드를 반환하는 것이 이상적입니다.

HTH, 엘리아스

1

나는 만료 기간 후 제대로 이해하면 당신은 사람들이 당신의 DLL의 수출 테이블에있는 함수를 호출 것을 원하지 않는다.

NAG 화면이 표시 되어도 Dll이 성공적으로로드되면 사람들은 여전히 ​​Dll 코드를 호출 할 수 있습니다. 따라서 시간을 확인하여 내 보낸 모든 기능을 보호해야합니다.

잔털 화면으로가는 것은 몇 가지 단점이 있습니다. a) 개발자는 제 3 자 라이브러리가 자신의 잔소리 화면을 표시하는 것을 싫어합니다. b) lib가 비 UI 응용 프로그램에서 사용되는 경우 (예 : 데스크톱과 상호 작용하지 않는 서비스에서 사용되는 경우)?

필자의 견해에 따르면 라이브러리를로드하는 것이 가장 좋습니다 (DLL이 다른 모듈의 IAT에있는 경우).하지만 평가판이 만료되면 인터페이스에 내 보낸 모든 함수가 오류 코드를 반환합니다.그렇게하면 라이브러리를 사용하는 응용 프로그램이 DLL의 기능을 무시하거나 만료되었다는 메시지를 표시 할 수 있습니다.

희망이 도움이됩니다.

관련 문제