我一直在使用菲利普·利夫斯马的“在选择运行时检测光标下的实体”中的程序,该程序位于1。它在ACAD2014中可以工作,但是现在我们使用ACAD2016。由于acdb19.dll的DLLImport和autocad2016需要acdb20.dll,它将无法工作。有没有办法让程序加载八个dll版本?我尝试使用netload和assembly.loadfrom,但都不起作用。
Point Monitor callback
发布于 2017-01-17 02:02:32
DLL导入是在编译时设置的,因此最好的方法是为每个AutoCAD发行版编译两个版本。
编译项目后,您可以通过创建application.bundle文件夹来设置自动加载器。此文件夹可以放在c:\programdata\Autodesk\applicationPlugins中。在application.bundle文件夹中,创建一个名为Application的子文件夹,并将编译后的.DLL文件放入其中。

加载器由一个XML文件控制,该文件应命名为PackageContents.xml。以下是xml文件的一些示例代码:
<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
Name="My AutoCAD App"
Description="Does something in AutoCAD"
Icon="./Application/MyIcon.ico"
Author="Paul Nelson">
<CompanyDetails Name="Paul Nelson"
Url="http://www.stackoverflow.com"
Email="myemail@email.com">
</CompanyDetails>
<Components>
<!-- define the min and max versions of AutoCA in the next line -->
<RuntimeRequirements OS="Win64" Platform="AutoCAD" SeriesMin="R19.0" SeriesMax="R22.0" />
<ComponentEntry
ModuleName=".\Application\MyApp.dll"
LoadOnAutoCADStartup="true"
LoadOnCommandInvocation="false"
AppDescription="This is assembly MyApp."
AppName="My AutoCAD App"
AppType=".NET">
<Commands GroupName="My Apps">
<Command Local="MYAPP" Global="MYAPP" />
</Commands>
</ComponentEntry>
</Components>
</ApplicationPackage>最后一个技巧-确保.dll文件名不包含空格。
https://stackoverflow.com/questions/41678077
复制相似问题