我有一个带有公共子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
答案 0 :(得分:0)
解决, 我重新编译了DLL,清理了注册表,未注册的最新版本的DLL,然后再次重新注册(没有修改dll源代码)。 也许有些参考文献被破坏了