0,0要怎么写才能适应32和64系统?
32位系统和64位系统的IntersectWith函数的数据类型不同样的。导致我的DLL不可以在32位系统和64位系统兼容使用。32位的
Public Overridable Sub IntersectWith(ByVal entityPointer As Autodesk.AutoCAD.DatabaseServices.Entity, ByVal intersectType As Autodesk.AutoCAD.DatabaseServices.Intersect, ByVal projectionPlane As Autodesk.AutoCAD.Geometry.Plane, ByVal points As Autodesk.AutoCAD.Geometry.Point3dCollection, ByVal thisGraphicSystemMarker As Integer, ByVal otherGraphicSystemMarker As Integer)
64位的最后面两个参数数据类型是long
ByVal thisGraphicSystemMarker As long , ByVal otherGraphicSystemMarker As long
我代码写的是:
L1.IntersectWith(L, Intersect.ExtendBoth, IsPt, 0, 0)
0,0要怎么写才能适应32和64系统?
C#多态函数在编译时适配,所以你用32位编译就是int,用64位就是long
只能分别编译成两个不同的dll 用 IntPtr.Zero 可同时适用32位和64位系统。 IntPtr.Zero 好像在高版本才有吧 可以写成 new System.IntPtr(0)
页:
[1]