Vba 调试错误的DLL调用约定
如何调试MSAccess VBA代码中错误的DLL调用约定错误 我对模块中的函数做了一些更改,然后得到了错误。如何调试它以找到原因Vba 调试错误的DLL调用约定,vba,ms-access,dll,Vba,Ms Access,Dll,如何调试MSAccess VBA代码中错误的DLL调用约定错误 我对模块中的函数做了一些更改,然后得到了错误。如何调试它以找到原因 此错误出现在函数的Exit function语句中。是否检查了引用并进行了反编译 "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "d:\My Documents\access\mayapp.mdb" /decompile 另请参见:
此错误出现在函数的Exit function语句中。是否检查了引用并进行了反编译
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE"
"d:\My Documents\access\mayapp.mdb" /decompile
另请参见:检查代码中的引用
Dim ref As Reference
Dim sMsg As String
''Available since 2010
If BrokenReference Then
For Each ref In References
''Available since at least 2000
If ref.IsBroken Then
sMsg = sMsg & "Ref Name: " & ref.Name
'Also, if required
'sMsg = sMsg & vbCrLf & "Built In: " & ref.BuiltIn
'sMsg = sMsg & vbCrLf & "Full Path: " & ref.FullPath
'sMsg = sMsg & vbCrLf & "GUID: " & ref.Guid
'sMsg = sMsg & vbCrLf & "Kind: " & ref.Kind
'sMsg = sMsg & vbCrLf & "Major (version number): " & ref.Major
'sMsg = sMsg & vbCrLf & "Minor (version number): " & ref.Minor
sMsg = sMsg & vbCrLf & "=================================" & vbCrLf
End If
Next
MsgBox sMsg
End If
我刚刚在Excel中得到了这个,不知道以前是否有人得到过它。我的解决方案是绕过对我自己DLL的引用,然后单击“编译”。我以前在Excel中看到过,没有任何外部引用。正如您的问题一样,它发生在一个退出函数调用上。Excel似乎没有/decompile选项,但我通过在我的一个类模块中进行更改,从“调试”菜单执行编译,然后撤消更改来修复它。我怀疑我的一个类模块由于某种原因编译错误,Excel不会重新编译,除非它认为发生了变化。我使用MS Access VBA解决了这个错误 发生的情况是:
UploadSomething
UploadSomething
中,使用以下代码更改了“恢复支持”选项:myTransferOptions.ResumeSupport.State=TransferResumeSupportState.TransferResumeSupportState\u Off
UploadSomething
的代码中,在函数完成后抛出了错误49
该错误发生在使用调试器单步执行代码时,以及在调试器外部立即执行时。重新编译这个项目对我不起作用
这样做的目的是:
在Excel VBA中,这可能由以下几个问题中的任意一个引起:
有关这些原因的解决方案,请参阅我的帖子:在尝试调用用英特尔Fortran编译的DLL时,VBA遇到了一些问题。事实证明,您需要使用编译器标志调用约定:cfv 更多信息请访问
关于同一问题的另一个有用的线程:您正在调用一个用“Declare”语句声明的本机函数,对吗?您可以与我们共享声明和调用吗?我已经修复了它…我所要做的就是使用/decompile启动访问,然后重新编译,错误就消失了。有关Excel中此错误的解决方案,请参阅我在以下位置发布的帖子:[运行时错误49,错误的DLL调用约定][1][1]:真棒的f*感谢您发布我遇到的这个问题。我只是在每个模块的顶部放了一个xxxx,然后:Debug,Compile VBAProject(它将突出显示一个xxxx)…删除-->Debug,Compile VBAProject…重复,直到不再出现编译错误。有时一个小的更改是不够的,因为VBA执行增量编译,而这些小更改可能不会触发损坏区域的重新编译。每个模块上的全选/剪切/粘贴通常会导致trickI在调用我编写的Access VBA函数(而不是外部API函数)时(以及从函数返回时)遇到此错误/反编译和重新编译成功了。我怀疑很多递归函数的调试(而不仅仅是运行)都会使访问变得混乱,而/反编译则会清除混乱。