⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.vb

📁 由VB编寫的人員排班系统主要模式包括(1)人員排班系统:排班處理;出勤人數;分析(2)維護系统:管理員登錄、管理員管理、數據資料庫的設置置等.
💻 VB
📖 第 1 页 / 共 2 页
字号:
    Public Const EV_TYPES_H__ As Integer = 1

    ' Typedefs for extra (convenience) types
    ' typedef double FAR * LPDOUBLE;
    ' typedef void _huge * HPVOID;
    ' typedef double _huge * HPDOUBLE;
    ' typedef short FAR * LPSHORT;
    ' typedef HPDOUBLE OPDOUBLE;        // Used for arrays that may be passed in as NULL.// VB "declare" uses "as VariantType" to make it easy to pass 0 as int16 (NULL)
    ' #ifdef _MSC_VER
    '    #if _MSC_VER < 1100
    '       typedef unsigned char bool;
    '    #else
    '       #ifndef __cplusplus
    '          typedef unsigned char bool;
    '       #endif
    '    #endif
    ' #else
    '    typedef unsigned char bool;
    ' #endif

    ' Limits constants
    Public Const EV_MAX_POPS As Integer = 1000
    Public Const EV_MAX_SOLVING_METHODS As Integer = 256
    Public Const EV_NUM_SM_MESSAGES As Integer = 8
    Public Const EV_MAX_OPERATORS As Integer = 256

    Public Const EV_MAX_VARIABLES As Integer = 20
    Public Const EV_INFINITY As Double = 1.0E+300

    ' Evolver edition constants
    Public Const EV_STANDARD_EDITION As Integer = 0
    Public Const EV_PROFESSIONAL_EDITION As Integer = 1
    Public Const EV_INDUSTRIAL_EDITION As Integer = 2

    ' Returned flags from EvPopReturnResult
    Public Const EV_FLAGS_BEST_RESULT_SO_FAR As Integer = 1
    Public Const EV_FLAGS_CONSTRAINTS_NOT_MET As Integer = 2
    Public Const EV_FLAGS_FIND_THE_CLOSEST_VALUE_FOUND As Integer = 4

    ' Special Results flags (from EvRes... functions)
    Public Const EV_RESULT_OK As Integer = 0
    Public Const EV_RESULT_NEVER_CALCULATED As Integer = 1
    Public Const EV_RESULT_CONSTRAINTS_NOT_MET As Integer = 2
    Public Const EV_INVALID_RESULT As Double = -1.001E+300

    ' Constants to enable debugging features
    Public Const EV_DEBUG_MEMCHECK As Integer = 1   ' Check for memory buffer overwrites
    Public Const EV_DEBUG_ASSERT As Integer = 2   ' Check for consistency conditions
    Public Const EV_DEBUG_SHOW_ERROR_MESSAGES As Integer = 4   ' Put up message boxes when errors occur, in// addition to returning an error code
    Public Const EV_DEBUG_LOG As Integer = 8   ' Write information into EVLIB.LOG

    ' Minimize, Maximize, Find the closest value constants
    Public Const EV_MINIMIZE As Integer = 0
    Public Const EV_MAXIMIZE As Integer = 1
    Public Const EV_FIND_THE_CLOSEST As Integer = 2

    ' Organism Indices
    Public Const EV_BEST_ORGANISM_INDEX As Integer = -1
    Public Const EV_ORIGINAL_ORGANISM_INDEX As Integer = -2
    Public Const EV_BEST_ORGANISM_IN_INITIAL_POP_INDEX As Integer = -3
    Public Const EV_EVAL_ORGANISM_INDEX As Integer = -4

    ' Mutation modes
    Public Const EV_MUTATION_MODE_NORMAL As Integer = 0
    Public Const EV_MUTATION_MODE_AUTO As Integer = 1

    ' Structures to pass to Evolver to tell it about the constraints for a problem.
    Structure EvProjectConstraints

        Public numRows As Long

        Public numCols As Long
    End Structure


    Structure EvScheduleConstraints
        Public numRows As Long

        Public numTimeBlocks As Long
    End Structure

    ' Put this value in constraint tables for empty table entries
    Public Const EV_TABLE_ENTRY_EMPTY As Double = -1.0E+300

    ' Constants for "Schedule" solving method constraints
    Public Const EV_SCHEDULE_A_AT_SAME_TIME_AS_B As Integer = 1
    Public Const EV_SCHEDULE_A_NOT_AT_SAME_TIME_AS_B As Integer = 2
    Public Const EV_SCHEDULE_A_BEFORE_B As Integer = 3
    Public Const EV_SCHEDULE_A_AT_TIME_B As Integer = 4
    Public Const EV_SCHEDULE_A_AT_SAME_TIME_OR_BEFORE_B As Integer = 5
    Public Const EV_SCHEDULE_A_AT_SAME_TIME_OR_AFTER_B As Integer = 6
    Public Const EV_SCHEDULE_A_NOT_AT_TIME_B As Integer = 7
    Public Const EV_SCHEDULE_A_AFTER_B As Integer = 8

    ' Error codes
    Public Const EV_NO_ERROR As Integer = 0
    Public Const EV_INVALID_POP_HANDLE As Integer = -1
    Public Const EV_INVALID_VARIABLE_NUMBER As Integer = -2
    Public Const EV_INVALID_OPERATOR_NUMBER As Integer = -3
    Public Const EV_OPERATOR_SOLVING_METHOD_DISAGREEMENT As Integer = -4
    Public Const EV_INVALID_SOLVING_METHOD_NAME As Integer = -5
    Public Const EV_INVALID_OPERATOR_NAME As Integer = -6
    Public Const EV_INVALID_SOLVING_METHOD_NUMBER As Integer = -7
    Public Const EV_INVALID_MESSAGE As Integer = -8
    Public Const EV_POP_LIMIT_REACHED As Integer = -9
    Public Const EV_INVALID_BASE_INDEX As Integer = -10
    Public Const EV_INVALID_GENE_RANGE_CONSTRAINT As Integer = -11
    Public Const EV_INVALID_PROGRESS_STEP_NUMBER As Integer = -12
    Public Const EV_OUT_OF_MEMORY As Integer = -13
    Public Const EV_INVALID_CONSTRAINTS As Integer = -14
    Public Const EV_INVALID_FUNCTION_FOR_SOLVING_METHOD As Integer = -15
    Public Const EV_INVALID_POP_NUMBER As Integer = -16
    Public Const EV_CONSTRAINTS_NOT_MET As Integer = -17
    Public Const EV_INVALID_ORGANISM_NUMBER As Integer = -18
    Public Const EV_CANT_LOAD_EVOLVER_DLL As Integer = -19
    Public Const EV_CANT_FIND_EVOLVER_FUNCTION_IN_DLL As Integer = -20
    Public Const EV_INVALID_CHROMOSOME_NUMBER As Integer = -21
    Public Const EV_INVALID_MIN_MAX_CLOSEST As Integer = -22
    Public Const EV_TOO_FEW_CHROMOSOMES_PER_ORGANISM As Integer = -23
    Public Const EV_TOO_FEW_ORGANISMS_PER_POP As Integer = -24
    Public Const EV_TOO_MANY_ORGANISMS_PER_POP As Integer = -25
    Public Const EV_TOO_MANY_CHROMOSOMES_PER_ORGANISM As Integer = -26
    Public Const EV_TOO_MANY_GENES_PER_CHROMOSOME As Integer = -27
    Public Const EV_TOO_MANY_GENES_PER_ORGANISM As Integer = -28
    Public Const EV_TOO_FEW_GENES_PER_ORGANISM As Integer = -29
    Public Const EV_CHROMOSOME_NOT_INITIALIZED As Integer = -30
    Public Const EV_INVALID_RESULT_FLAG_VALUE As Integer = -31
    Public Const EV_SCHEDULE_GENE_INVALID As Integer = -32
    Public Const EV_TOO_FEW_GENES_PER_CHROMOSOME As Integer = -33
    Public Const EV_INVALID_GENE_NUMBER As Integer = -34
    Public Const EV_INVALID_SLOT_NUMBER As Integer = -35
    Public Const EV_ORGANISM_DOES_NOT_YET_EXIST As Integer = -36
    Public Const EV_VARIABLE_NEVER_ASSIGNED As Integer = -37
    Public Const EV_EDITION_CAPABILITY_EXCEEDED As Integer = -38
    Public Const EV_INVALID_CONSTRAINT_NUM As Integer = -39
    Public Const EV_INVALID_MUTATION_RATE As Integer = -40
    Public Const EV_INVALID_CROSSOVER_RATE As Integer = -41
    Public Const EV_INVALID_BACKTRACK_RATE As Integer = -42
    Public Const EV_INVALID_MUTATION_MODE As Integer = -43
    Public Const EV_NO_APPLICABLE_OPERATOR As Integer = -44
    Public Const EV_NOT_IN_SOLVING_METHOD As Integer = -45

    ' Commands sent to solving methods
    Public Const EV_SM_GET_VERSION As Integer = 1
    Public Const EV_SM_GET_MESSAGES As Integer = 2
    Public Const EV_SM_GET_BASE_INDEX As Integer = 3  ' What is the index of the first element of an array (0 for C/C++, 1 for VB)
    Public Const EV_SM_GET_NAME As Integer = 4
    Public Const EV_SM_GET_NUMBER As Integer = 5
    Public Const EV_SM_GET_PARENT As Integer = 6
    Public Const EV_SM_SEND_MESSAGE As Integer = 100  ' Process one of the messages (see below for the list)

    ' Messages sent to solving methods
    Public Const EV_SM_MSG_CREATE As Integer = 1
    Public Const EV_SM_MSG_DESTROY As Integer = 2
    Public Const EV_SM_MSG_ADD_CONSTRAINTS As Integer = 4
    Public Const EV_SM_MSG_ADJUST_RANGE As Integer = 8
    Public Const EV_SM_MSG_SELECT_PARENTS As Integer = 16
    Public Const EV_SM_MSG_CROSSOVER As Integer = 32
    Public Const EV_SM_MSG_MUTATE As Integer = 64
    Public Const EV_SM_MSG_BACKTRACK As Integer = 256

    ' Commands sent to Operators
    Public Const EV_OPER_GET_VERSION As Integer = 1  ' Get the version string for the Operator
    Public Const EV_OPER_GET_MESSAGES As Integer = 2  ' Get the messages supported by the Operator (mutation, etc.)
    Public Const EV_OPER_GET_BASE_INDEX As Integer = 3  ' What is the index of the first element of an array (0 for C/C++, 1 for VB)
    Public Const EV_OPER_GET_NAME As Integer = 4  ' Get the name string of the Operator
    Public Const EV_OPER_COMPATIBLE_WITH_SOLVING_METHOD As Integer = 5  ' Ask the Operator if it can work with a specific solving method
    Public Const EV_OPER_SEND_MESSAGE As Integer = 100  ' Process one of the messages (see below for the list)

    ' Messages sent to Operators
    Public Const EV_OPER_MSG_ADD_TO_CHROMOSOME As Integer = 1
    Public Const EV_OPER_MSG_REMOVE_FROM_CHROMOSOME As Integer = 2
    Public Const EV_OPER_MSG_START_USING As Integer = 4
    Public Const EV_OPER_MSG_STOP_USING As Integer = 8
    Public Const EV_OPER_MSG_SELECT_PARENTS As Integer = 16
    Public Const EV_OPER_MSG_CROSSOVER As Integer = 32
    Public Const EV_OPER_MSG_MUTATE As Integer = 64
    Public Const EV_OPER_MSG_OTHER_OPERATOR As Integer = 128
    Public Const EV_OPER_MSG_BACKTRACK As Integer = 256
    Public Const EV_OPER_MSG_START_RETURN_RESULT As Integer = 512
    Public Const EV_OPER_MSG_END_RETURN_RESULT As Integer = 1024
    Public Const EV_OPER_MSG_NEW_BEST_FOUND As Integer = 2048

    ' #endif // __EV_TYPES_H__

    Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As VariantType, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
    Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long


    Dim evDll As Int64   ' Handle to the Evolver DLL - 0 means not loaded

    Function EvLoad%(ByVal evPath$, ByVal baseIndex%, ByVal debugFlags%)

        Dim dtoolsDir$, evDllName$

        ' Make sure we have the path to EVLIBxx.DLL
        '      If (evPath$ = vbNullString) Then
        '            dtoolsDir = Space(257)
        '            ilen% = GetPrivateProfileString("Directories", "System", "", dtoolsDir, 256, "DTOOLS.INI")
        '            dtoolsDir = Left$(dtoolsDir, ilen)
        '     Else
        '           dtoolsDir = evPath
        '    End If

        dtoolsDir = "C:\windows\SYSTEM\"

        evDllName = dtoolsDir & "evlib32.dll"
        '#Else
        '       evDllName = dtoolsDir  as int16 "EVLIB16.DLL"
        '#End If

        ' Load the DLL
        evDll = LoadLibrary(evDllName)

        If (evDll = 0) Then
            MsgBox("Error loading Evolver DLL (" & evDllName & ").")
            EvLoad = EV_CANT_LOAD_EVOLVER_DLL

            ' Dll loaded, so initialize it
        Else
            EvLoad = EvInit(baseIndex, debugFlags)
            If (EvLoad <> EV_NO_ERROR) Then
                FreeLibrary(evDll)
                evDll = 0
            End If
        End If

    End Function

    Function EvUnload%()

        ' Unload only if it was loaded successfully
        If (evDll <> 0) Then
            EvUnload = EvFree()
            FreeLibrary(evDll)
        Else
            EvUnload = EV_NO_ERROR
        End If

    End Function

End Module

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -