国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

為SOLIDWORKS創(chuàng)建VB.NET獨(dú)立(exe)應(yīng)用程序

2023-04-14 20:26 作者:HongfengZhu  | 我要投稿

在本教程中,我將演示如何使用 VB.NET 和Microsoft Visual Studio從進(jìn)程外(也稱為獨(dú)立)應(yīng)用程序(例如Windows Forms,Windows Console)連接到SOLIDWORKS應(yīng)用程序。

有關(guān)本文中討論的方法的更詳細(xì)說(shuō)明,請(qǐng)閱讀《如何使用SOLIDWORKS API創(chuàng)建獨(dú)立(exe)應(yīng)用程序》一文。

創(chuàng)建新項(xiàng)目

我將使用Microsoft Visual Studio開(kāi)發(fā)環(huán)境。您可以使用任何版本的 Visual Studio。相同的代碼適用于專業(yè)版、精簡(jiǎn)版或社區(qū)版。

  • 打開(kāi)Visual Studio。?

  • 啟動(dòng)新項(xiàng)目:

在Visual Studio中創(chuàng)建新的 VB.NET 項(xiàng)目
  • 選擇項(xiàng)目模板。我建議從控制臺(tái)應(yīng)用程序項(xiàng)目模板開(kāi)始,因?yàn)樗钌俚念A(yù)生成代碼:

選擇 VB.NET 控制臺(tái)應(yīng)用程序項(xiàng)目模板
  • 添加對(duì) SolidWorks 互操作庫(kù)的引用。

    互操作庫(kù)文件位于SOLIDWORKS安裝文件夾\api\redist\SolidWorks.Interop.sldworks.dll(用于面向 Framework 4.0 及更高版本的項(xiàng)目),SOLIDWORKS安裝文件夾\api\redist\CLR2\SolidWorks.Interop.sldworks.dll(用于面向框架 2.0 和 3.5 的項(xiàng)目)。

向項(xiàng)目添加程序集引用

對(duì)于面向 Framework 4.0 的項(xiàng)目,我建議將“嵌入互操作類型”選項(xiàng)設(shè)置為 false。否則,由于類型轉(zhuǎn)換問(wèn)題,在調(diào)用 SOLIDWORKS API 時(shí),應(yīng)用程序可能會(huì)出現(xiàn)不可預(yù)測(cè)的行為。?

嵌入互操作程序集的選項(xiàng)

現(xiàn)在我們可以添加代碼以連接到 SOLIDWORKS 實(shí)例。

創(chuàng)建或連接到SOLIDWORKS實(shí)例

連接到 COM 服務(wù)器的最常見(jiàn)和最快速的方法可能是使用CreateObject方法(https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.visualbasic.interaction.createobject)。替代方法是:Activator::CreateInstance(https://learn.microsoft.com/zh-cn/dotnet/api/system.activator.createinstance)和 GetObject(https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.visualbasic.interaction.getobject)。請(qǐng)注意,如果 GetObject 無(wú)法連接到活動(dòng)會(huì)話,它將創(chuàng)建新實(shí)例。

我建議使用 Activator::CreateInstance,因?yàn)檫@允許通過(guò) 2 個(gè)步驟連接到會(huì)話:

  • 由于 SOLIDWORKS 應(yīng)用程序已注冊(cè)為 COM 服務(wù)器,因此我們可以通過(guò) Type::GetTypeFromProgID方法(https://learn.microsoft.com/zh-cn/dotnet/api/system.type.gettypefromprogid)從其程序標(biāo)識(shí)符創(chuàng)建類型。

  • 從類型定義構(gòu)造類型的實(shí)例。

這種方法將在發(fā)生錯(cuò)誤時(shí)提供更好的故障排除選項(xiàng):如果第一步失敗,則意味著 COM 類未注冊(cè)或無(wú)法從注冊(cè)表訪問(wèn);否則,這可能表示存在某些權(quán)限問(wèn)題。請(qǐng)閱讀《如何使用SOLIDWORKS API創(chuàng)建獨(dú)立(exe)應(yīng)用程序》一文,了解此方法的限制說(shuō)明。

或者,您可以使用 Marshal::GetActiveObject方法(https://learn.microsoft.com/zh-cn/dotnet/api/system.runtime.interopservices.marshal.getactiveobject)連接到SOLIDWORKS的活動(dòng)(已啟動(dòng))會(huì)話。與調(diào)用 GetObject 不同,此方法將確保不會(huì)創(chuàng)建新的 SOLIDWORKS 實(shí)例,并且如果沒(méi)有要連接的正在運(yùn)行的 SOLIDWORKS 會(huì)話,則會(huì)引發(fā)異常。

通過(guò) ROT 獲取正在運(yùn)行的實(shí)例

為了連接到已經(jīng)運(yùn)行的特定 SOLIDWORKS 會(huì)話或能夠創(chuàng)建多個(gè)會(huì)話,您可以使用正在運(yùn)行的對(duì)象表 API。請(qǐng)閱讀《如何使用SOLIDWORKS API創(chuàng)建獨(dú)立(exe)應(yīng)用程序》一文,了解有關(guān)此方法的更多詳細(xì)信息。

在上面的示例中,通過(guò)從SOLIDWORKS應(yīng)用程序安裝路徑啟動(dòng)新進(jìn)程來(lái)啟動(dòng)SOLIDWORKS的新會(huì)話。StartSwApp 函數(shù)需要 sldworks.exe的完整路徑作為第一個(gè)參數(shù),可選的timeout(超時(shí),以秒為單位)作為第二個(gè)參數(shù)。超時(shí)將確保在進(jìn)程無(wú)法啟動(dòng)的情況下應(yīng)用程序不會(huì)被鎖定。

您還可以使用異步調(diào)用,以便在SOLIDWORKS啟動(dòng)時(shí)在應(yīng)用程序中顯示一些進(jìn)度指示:


文章翻譯自https://www.codestack.net/

僅供學(xué)習(xí)使用。


為SOLIDWORKS創(chuàng)建VB.NET獨(dú)立(exe)應(yīng)用程序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
滦南县| 林周县| 霍林郭勒市| 和硕县| 前郭尔| 五莲县| 新田县| 榆林市| 乾安县| 孙吴县| 美姑县| 双桥区| 永吉县| 灵台县| 高台县| 澄城县| 尼木县| 黄石市| 张家川| 南城县| 花莲县| 浦城县| 彰化市| 象山县| 富裕县| 天峨县| 隆尧县| 文登市| 阿巴嘎旗| 朝阳区| 望奎县| 抚顺县| 垫江县| 旬阳县| 静安区| 博兴县| 崇信县| 宣恩县| 大同市| 南阳市| 渑池县|