版权声明:版权归个人所有!转载请注明出处。 https://blog.csdn.net/sapch33/article/details/83422981
一、CAD由句柄(字符串)获取ID
public ObjectId GetObjectId(Database db, string handleString)
{
long l = Convert.ToInt64(handleString, 16);
Handle handle = new Handle(l);
return db.GetObjectId(false, handle, 0);
}
二、IntPtr 与 string互转
ID、指针、句柄和 ads_name 之间具有下面的转换关系:
(1)从 ID 到对象acdbOpenAcDbObject 和 acdbOpenObject 中的任何一个。
(2)从对象指针到 ID:所有的数据库常驻对象都继承自 AcDbOb包含的 objectId 函数能获得所指向对象的 ID。
(3)从句柄到 ID:使用 AcDbDatabase::getAcDbObje
(4)从 ID 到句柄:使用 AcDbObjectId::handle 函数。
(5)从指针到句柄:使用 AcDbObject::getAcDbHandle
(6) 从 ads_name 到 ID:使用全局函数 acdbGetObjectId。
(7)从 ID 到 ads_name:使用全局函数 acdbGetAdsName。
三、IntPtr 与 string互转
string str = “aa”;
IntPtr init = Marshal.StringToHGlobalAnsi(str);
string ss= Marshal.PtrToStringAnsi(init);
//最后释放掉
Marshal.FreeHGlobal(init);