请大侠帮忙winform程序如何调用dll 谢谢
我想实现在winform点一个按钮,在autocad中就画出图形的功能。一个简单的类,我在winf里面调用就是报错
Class1 c1=new Class1() ;
c1.Welcome();
提示未能加载文件或程序集“acmgd, Version=17.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
类具体如下:
public class Class1 //: IExtensionApplication
{
public void Initialize()
{
Welcome();
}
public void LoadCad()
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "C:\\Program Files\\AutoCAD 2008\\acad.exe";//需要启动的程序名
p.StartInfo.Arguments = "/nologo /b start.scr";//启动参数
p.Start();//启动
//ExtensionLoader.Load("CAGAcad.dll");
}
public void Terminate()
{
Debug.WriteLine("程序结束,你可以在里做一些程序的清理工作,如关闭AutoCAD文档");
}
public void Welcome()
{
//ExtensionLoader.Load("");
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("CAG绘图功能加载!");
}
public void FirstLine()
{
Database db = HostApplicationServices.WorkingDatabase;
Point3d pt1 = new Point3d(0, 0, 0);
Point3d pt2 = new Point3d(0, 500, 0);
Line lineEnt = new Line(pt1, pt2);
using (Transaction ta = db.TransactionManager.StartTransaction())
{
BlockTable bt = (BlockTable)ta.GetObject(db.BlockTableId, OpenMode.ForRead);
BlockTableRecord btr = (BlockTableRecord)ta.GetObject(bt, OpenMode.ForWrite);
btr.AppendEntity(lineEnt);
ta.AddNewlyCreatedDBObject(lineEnt, true);
ta.Commit();
}
}
}
1,建议先把C#再学一下
2,你没有引用acmgd.dll
3, public class Class1 //: IExtensionApplication 你把关键的东西注析掉了
本帖最后由 DB思 于 2011-10-13 16:29 编辑
acmgd.dll
已经引用进来了,如果那个不注释掉的话,报另外一个错误
提示 Application.Run(new Form1());找不到模块 1,建议先把C#再学一下
2,Application.Run(new Form1()); 你的工程里面没有Form1,自然找不到这个模块
3,编译输出的应该是dll,而不是exe sieben 发表于 2011-10-13 16:37 static/image/common/back.gif
1,建议先把C#再学一下
2,Application.Run(new Form1()); 你的工程里面没有Form1,自然找不到这个模块
3,编 ...
有form1啊!! 我也遇到这样的问题,楼主解决了没有?
页:
[1]