Читайте также:
|
|
Если вы хотите, чтобы каждый пользователь вашей программы вводил серийный номер в процессе её инсталляции, вы должны обеспечить программу установки специальным файлом DLL или "ActiveX DLL", который выполнить проверку правильности введенного серийного номера.
Примеры файлов DLL на разных языках программирования вы найдете в папке "..\QSetup\ SampleDLLs \.
Все они построены по одному принципу, необходимо экспортировать две функции:
Код C/C++:
__declspec(dllexport) int __cdecl GetDllVersion()
__declspec(dllexport) int __cdecl GetSerialOK(HWND Wnd, char* Serial, char* User, char* Company)
Код Pascal:
function GetDllVersion: integer; cdecl;
function GetSerialOK(Wnd: HWND; Serial,User,Company: PChar): integer; cdecl;
Код Visual Basic:
Public Function GetDllVersion() As Integer
Public Function GetSerialOK(Wnd As Long, Serial As String, User As String, Company As String) As Integer
Возвращаемое значение первой функции должно быть 1.
Возвращаемое значение второй функции должно быть 0, если проверка неудачна и 1, если проверка успешна.
Пример программирования DLL на C/C++ (Компилировать с Visual C++ 6)
#include "stdafx.h"
#include <string.h>
extern "C" {
__declspec(dllexport) int __cdecl GetDllVersion()
{
return 1;
}
}
extern "C" {
__declspec(dllexport) int __cdecl GetSerialOK(HWND Wnd, char* Serial, char* User, char* Company)
{
if (strcmp("1234",Serial)==0)
return 1;
else
return 0;
}
}
Пример программирования DLL на C/C++ (Компилировать с Borland C++ Builder)
#include <string.h>
__declspec(dllexport) int __cdecl GetDllVersion()
{
return 1;
}
__declspec(dllexport) int __cdecl GetSerialOK(HWND Wnd, char* Serial, char* User, char* Company)
{
if (strcmp("1234",Serial)==0)
return 1;
else
return 0;
}
Пример программирования DLL на PASCAL (Компилировать с DELPHI 6 или DELPHI 7)
library SerialCheck;
uses
Windows,SysUtils;
function GetDllVersion: integer; cdecl;
begin
Result:=1
end;
function GetSerialOK(Wnd: HWND; Serial,User,Company: PChar): integer; cdecl;
begin
if (StrComp('1234',Serial)=0) then
Result:=1
else
Result:=0;
end;
exports
GetDllVersion,
GetSerialOK;
begin
end.
Пример программирования DLL на "Visual Basic" для "ActiveX DLL" (Компилировать с VB6)
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "SerialCheck"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Public Function GetDllVersion() As Integer
GetDllVersion = 1
End Function
Public Function GetSerialOK(Wnd As Long, Serial As String, User As String, Company As String) As Integer
If (Serial = "1234") Then
GetSerialOK = 1
Else
GetSerialOK = 0
End If
End Function
Дата добавления: 2015-11-14; просмотров: 48 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Требуемое количество свободного места (Mб) | | | Показать индикатор выполнения |