打造自己的CreateObject函数(VB)

vb Code

 

在CreateObject调用之前,先调用CreateObjectEx函数

下面实现,这样可以知道我们的Class参数是否能创建成功!!!

 

Type CLSID

   Data1 as long

   Data2 as Integer

   Data3 as Integer

   Data(7) as byte

end Type

 

public declare Function CLSIDFromProgID lib "Ole32.dll" (Byval  lpszProgID as long,pClsid as CLSID) as long

 

 

public Function CreateObjectEx(Class as string) as object

 

'--注意最好写上

on error goto ErrHandler

 

     dim myclsid as CLSID

     dim lngRet as long

     dim Obj

     lngRet  = CLSIDFromProgID (strptr(Class),  myclid)

     debug.print   Hex(myclid.Data1)

debug.print   Hex(myclid.Data2)

debug.print   Hex(myclid.Data3)

debug.print   Hex(myclid.Data(0))  & Hex(myclid.Data(1))  & Hex(myclid.Data(2))  & Hex(myclid.Data(3)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用VB编写的计算SolidWorks工程图图幅的示例函数: ```vb Imports SolidWorks.Interop.sldworks Imports SolidWorks.Interop.swconst Public Class SolidWorksHelper Public Function CalculateDrawingScale(width As Double, height As Double) As String Dim swApp As SldWorks = Nothing Dim swModel As ModelDoc2 = Nothing Dim swDraw As DrawingDoc = Nothing Dim swSheet As Sheet = Nothing Try ' 创建SolidWorks应用程序对象 swApp = CreateObject("SldWorks.Application") swApp.Visible = False ' 打开工程图文件 swModel = swApp.OpenDoc6("path_to_drawing_file", swDocumentTypes_e.swDocDRAWING, swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0) ' 转换为DrawingDoc对象 swDraw = DirectCast(swModel, DrawingDoc) ' 获取第一个图纸页 swSheet = swDraw.GetCurrentSheet() ' 获取图纸页的比例尺 Dim scale As Double = swSheet.Scale2 ' 计算图幅 Dim drawingWidth As Double = width / scale Dim drawingHeight As Double = height / scale ' 返回图幅结果 Return "图幅:" & drawingWidth & "mm x " & drawingHeight & "mm" Catch ex As Exception Return "错误:" & ex.Message Finally ' 释放资源 If Not IsNothing(swSheet) Then Marshal.ReleaseComObject(swSheet) If Not IsNothing(swDraw) Then Marshal.ReleaseComObject(swDraw) If Not IsNothing(swModel) Then swModel.Close() If Not IsNothing(swApp) Then swApp.ExitApp() End Try End Function End Class ``` 请注意,这只是一个示例函数,您需要根据您的具体需求进行适当的修改和调整。在使用此函数之前,请确保已安装SolidWorks软件,并将"SolidWorks.Interop.sldworks"和"SolidWorks.Interop.swconst"添加到项目的引用中。 此函数接受工程图的宽度和高度作为参数,并返回计算后的图幅结果。您需要将"path_to_drawing_file"替换为实际的工程图文件路径。 希望这能帮助到您!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值