prooblem :
는 지금까지 내가 아는 한, 라이센스 집행은 MS 링커의 기능이 아닙니다. 그렇게해도 라이브러리 파일에는 알려진 정의가 있으므로 고객이 사용하지 않는 다른 링커를 사용하지 못하게 할 수는 없습니다.
라이브러리 배포에는 SDK에 문제가 있습니다. 라이브러리 기반 SDK에서는 고객에게 계정을 제공하지 않고도 멋진 응용 프로그램을 만드는 데 필요한 모든 것을 제공합니다. 개발자가 귀하가 제공 한 모든 것을 다른 사람에게 복사하는 것을 막을 수있는 방법은 없습니다. 그들이 당신에게 의지하게 만드는 유일한 생각은 당신이 그들을 제공 할 것이라는 지원과 보장입니다.
잠재적 인 솔루션
당신은 도서관에서 고객의 라이센스 정보를 저장하고, 그것에 대해 알릴 수 있습니다. Developpers는 라이센스를 여전히 채울 수 있지만 누출을 발견하고 고소 할 수 있음을 알게됩니다. 이것은 그들이 당신의 일을 나누는 것을 더 꺼리게 만듭니다.
배포 인프라가 모든 고객에 대해 고유 한 lib 파일을 생성 할 수 있어야한다는 어려움이 있습니다. 실용적인 관점에서 볼 때 두 개의 lib 파일을 사용하는 것이 좋습니다. 하나는 실제 라이브러리 용이고 다른 하나는 라이센스 정보 용 (암호화 된 라이센스 정보가 들어있는 전역 extern 변수의 정의가 들어 있습니다)입니다.
Windows에서는 한 단계 더 나아갈 수도 있습니다. exe 파일의 매니페스트 나 속성에 컨트롤 (저작권, 게시자, 공개 키 토큰 등)에 적합한 여러 공급 업체 특정 필드가 있습니다. 당신은 당신의 라이브러리에 포함 된 라이센스 정보로이 정보의 내용을 점검 할 수있는 라이센스 lib 파일의 생성과 라이브러리 기능의 첫 번째 호출에 대해이 정보를 요청할 수 있습니다.
추가 정보를 원하시면
1) 정적 데이터가 충분하지 않습니다 :
그냥 라이브러리 파일에서 정보를 가진 것만으로는 충분하지 않습니다. 귀하의 고객은 라이선스 정보를 더미 정보로 대체하거나 간단히 삭제할 수 있습니다. 따라서 특수 체크섬을 준수하는 방식으로 데이터를 암호화하는 것이 중요합니다. 그런 다음 라이브러리는 라이센스 데이터의 유효성을 제어하는 첫 번째 단계 인 단일 제어 기능을 구현해야합니다.
2) 고객은 개발자와, 그래서 그들은 당신이 어떤 역 라이브러리를 설계하는 것을 방지하고 기능을 제어 패치
로 스마트입니까? 또는 사용하고 더미 라이센스 정보를 계산하는 체크섬을 찾으십시오.
결론
확실히 계획의이 종류를 시행하는 방법이 있습니다,하지만 그들은 당신을 위해 비싼 (추가 developpment, 복잡한 유통), 충분한 노력, 그것은을 비활성화 할 수 있습니다.
고객에게 너무 제약이있는 경우 다른 라이브러리를 사용하게됩니다.
내가 너라면, 두 번 생각해 보겠다. 강력한 도서관의 행복한 고객은 공급자에게 충성하는 경향이 있습니다. 특히 반응 형 지원이 제공된다면! 왜 그렇게 괴롭습니까? 시작부터 고객의 신뢰 관계를 구축하는 것이 어떻습니까?
IPP (인텔 성능 프리미티브)가이 기능을 가지고 있다는 것을 모호하게 기억하고 있습니다. 유효한 라이센스가있을 때까지 링크하지 못하게합니다. 나는 그것으로 기웃 거리며 시도하고 그것이 어떻게 작동하는지 점검하려고 노력할 것이다. 아무도 이미 알고 있니? – kumaakh