2017-01-16 22 views
0

私は、選択中にカーソルを下に置いているエンティティを検出しているプログラムを使用しています。フィリップ・リーフマはここにある1にあります。 ACAD2014で動作しましたが、今はACAD2016を使用しています。 acdb19.dllのDLLImportとautocad2016のためにacdb20.dllが必要です。プログラムがより強力なdllバージョンをロードする方法はありますか? netloadとassembly.loadfromを使ってみましたが、どちらもうまくいきませんでした。autocad dllimport by autocad version

Point Monitor callback

答えて

0

最善の策は、AutoCADのの各リリースの2つのバージョンをコンパイルすることですので、DLLのインポートはコンパイル時に設定されています。

プロジェクトがコンパイルされたら、application.bundleフォルダを作成してオートローダーをセットアップできます。このフォルダはc:¥programdata¥Autodesk¥applicationPluginsに置くことができます。 application.bundleフォルダにApplicationというサブフォルダを作成し、そこにコンパイル済み.DLLファイルを置きます。 application.bundle folder contents

ローダは、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="[email protected]"> 
</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ファイル名にスペースが含まれていないことを確認してください。

+0

ありがとうございます。社内のdllファイルの自動更新手段としてapplication.bundleを使用しています。そこでバージョンチェックをするのは私には起こりませんでした。 – North

関連する問題