Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Проверка серийного номера по файлу DLL

Добавление цветовых полос игрока | Кнопки страниц | Детали проекта | Диалог выбора языка | Фон инсталляции | Файл фонового изображения | Файл малого рисунка | Добавить файлы | NET компонент | Псевдоним пути |


Читайте также:
  1. II. Укажите номера предложений, в которых глагол-сказуемое стоит в группе длительных времен
  2. III. Проверка.
  3. V. Укажите номера предложений, в которых глагол-сказуемое стоит в страдательном залоге
  4. XII. Укажите номера предложений, в которых причастие II выступает в роли определения
  5. XIV. Укажите номера предложений, в которых инфинитив переводится на русский язык именем существительным или неопределенной формой глагола.
  6. XVII. Укажите номера предложений в которых –ing-форма переводится на русский язык с помощью слова «будучи» и страдательного причастия.
  7. Арифметическая проверка

Если вы хотите, чтобы каждый пользователь вашей программы вводил серийный номер в процессе её инсталляции, вы должны обеспечить программу установки специальным файлом 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б)| Показать индикатор выполнения

mybiblioteka.su - 2015-2024 год. (0.009 сек.)