VB6错误32797使用sizeform从一个创建的dll,如何解决?

时间:2015-10-14 12:04:56

标签: dll vb6

我有一个带有公共子SysSetSizeDisp(eSize1,eSize2)的dll。 当我通过外部项目调用此子系统时,系统返回错误32797。 我试图取消注册并注册我的dll,声明变量然后设置“新语句”。 有人知道这个问题吗?

这里是我的功能代码:

Public Sub SysSetSizeDisp(eSmall As eBsDispSize, eBig As eBsDispSize)
Const STG_FUNC As String = "SysSetSizeDisp"

Dim fK As Single
Dim fRH As Integer
Dim fRW As Integer

    If eSmall > eBig Then Exit Sub

    If DpyCnf.WinSizeMax = SysDpyGetCurrentResolution() Then
        fRH = -H_TESTATA / Screen.TwipsPerPixelY
        fRW = -135 / Screen.TwipsPerPixelY
    Else
        fRH = 0
        fRW = 0
    End If

    Select Case eSmall
    Case Is = eDSize320x240
        fSCALA1W = 320 * Screen.TwipsPerPixelX
        fSCALA1H = 240 * Screen.TwipsPerPixelY
    Case Is = eDSize640x480
        fSCALA1W = 640 * Screen.TwipsPerPixelX
        fSCALA1H = 480 * Screen.TwipsPerPixelY
    Case Is = eDSize800x600
        fSCALA1W = 800 * Screen.TwipsPerPixelX
        fSCALA1H = 600 * Screen.TwipsPerPixelY
    Case Is = eDSize1024x768
        fSCALA1W = 1024 * Screen.TwipsPerPixelX
        fSCALA1H = 768 * Screen.TwipsPerPixelY
    Case Is = eDSize1152x864
        fSCALA1W = 1152 * Screen.TwipsPerPixelX
        fSCALA1H = 864 * Screen.TwipsPerPixelY
    Case Is = eDSize1280x960
        fSCALA1W = 1280 * Screen.TwipsPerPixelX
        fSCALA1H = 960 * Screen.TwipsPerPixelY
    Case Is = eDSize1280x1024
        fSCALA1W = 1280 * Screen.TwipsPerPixelX
        fSCALA1H = 1024 * Screen.TwipsPerPixelY
    Case Is = eDSize1600x1280
        fSCALA1W = 1600 * Screen.TwipsPerPixelX
        fSCALA1H = 1280 * Screen.TwipsPerPixelY
    End Select

    Select Case eBig
    Case Is = eDSize320x240
        fSCALA2W = 320 * Screen.TwipsPerPixelX
        fSCALA2H = 240 * Screen.TwipsPerPixelY
    Case Is = eDSize640x480
        fSCALA2W = (640 + fRW) * Screen.TwipsPerPixelX
        fSCALA2H = (480 + fRH) * Screen.TwipsPerPixelY
    Case Is = eDSize800x600
        fSCALA2W = (800 + fRW) * Screen.TwipsPerPixelX
        fSCALA2H = (600 - fRH) * Screen.TwipsPerPixelY
    Case Is = eDSize1024x768
        fSCALA2W = (1024 + fRW) * Screen.TwipsPerPixelX
        fSCALA2H = (768 + fRH) * Screen.TwipsPerPixelY
    Case Is = eDSize1152x864
        fSCALA2W = (1152 + fRW) * Screen.TwipsPerPixelX
        fSCALA2H = (864 + fRH) * Screen.TwipsPerPixelY
    Case Is = eDSize1280x960
        fSCALA2W = (1280 + fRW) * Screen.TwipsPerPixelX
        fSCALA2H = (960 + fRH) * Screen.TwipsPerPixelY
    Case Is = eDSize1280x1024
        fSCALA2W = (1280 + fRW) * Screen.TwipsPerPixelX
        fSCALA2H = (1024 + fRH) * Screen.TwipsPerPixelY
    Case Is = eDSize1600x1280
        fSCALA2W = (1600 + fRW) * Screen.TwipsPerPixelX
        fSCALA2H = (1280 + fRH) * Screen.TwipsPerPixelY
    End Select

    fK = 9675 / 9600

    fSCALA1W = fSCALA1W * fK
    fSCALA1H = fSCALA1H * fK
    fSCALA2W = fSCALA2W * fK
    fSCALA2H = fSCALA2H * fK

    DpyCnf.WinSizeMin = eSmall
    DpyCnf.WinSizeMax = eBig

    Exit Sub
EH:
    Debug.Assert False
    cErr.MemoSave Err, STG_ME & "." & STG_FUNC
End Sub

1 个答案:

答案 0 :(得分:0)

解决, 我重新编译了DLL,清理了注册表,未注册的最新版本的DLL,然后再次重新注册(没有修改dll源代码)。 也许有些参考文献被破坏了