vba代码在2004年有效,但在2016年无效
我有一个VBA程序(LatLong.dvb)将坐标从X,Y转换为纬度,经度。它在我的Windows 7 64位机器上的Autocad 2004中运行良好,但在Autocad 2016中出现错误。(使用对DLL的调用。)(我安装了“Autocad\u 2016\u AcVbaInstaller\u Win\u 64bit\u dlm.sfx.exe”)
我还将支持文件搜索路径设置为包括路径  ;C: 拉特朗  ;C: 下面是我认为可能是我的问题的代码部分:模块1-常规-声明:如果是VBA7,则声明PtrSafe函数SetNadconPath Lib;c: \program files\corpscon6\corpscon\u v6.dll“;(ByVal路径作为字符串)作为LongPtr,Else
声明函数GetNadconPath Lib“;c: \program files\corpscon6\corpscon\u v6.dll“;(ByVal path As String)As Long#End IfModule1-General-convptsDim test7 As LongLong>test7=SetNadconPath(“c:\program files\corpscon6\nadcon”)  'corpscon数据文件的路径上面的最后一行导致此错误:
运行时错误';48:找不到文件c:\program files\corpscon6\corpscon\u V6.dll。我不知道,corpscon\u V6.dll应该在哪里;我不知道还能尝试什么
请帮忙
比尔
嗨,比尔,我用vba已经很久了,但是你设置了';参考#039;在vba项目中找到正在使用的库的路径
或者这就是我假设的AutoCAD支持路径所指的支持路径吗? 您可能已经知道,这很可能是32位(Acad2004)和64位(Acad2016)的问题
虽然您可能认为#If指令可以通过使外部函数根据相应的VBA版本返回正确的数据类型来解决问题,但它可能不起作用,因为在35;If…#Else 35)End If中,两个分支都指向相同的DLL文件,不太可能是同一DLL文件中的32位版本和64位版本。它是32位或64位。对于Acad2016 64位,您';我们需要64位版本的DLL。 谢谢你的回复。参考路径就在我的VBA程序中。我联系了USACE(美国陆军工程公司),他们没有64位版本的DLL ;我曾尝试安装Autodesk 32位VBA enabler for Autocad 2016,但无法在64位计算机上安装 ;现在我';当我想使用我的程序时,我只使用2004
考虑使用Python和一些临时文本文件进行转换的变通方法。 此DLL的64位版本位于https://github.com/dhawk/corpscon_v6_64bit.dll
页:
[1]