pb調用c#編寫的dll(實例爲畫帶箭頭的線)

本文轉自:https://blog.csdn.net/zh1303300/article/details/88177929?tdsourcetag=s_pcqq_aiomsg

本人最近要在pb端做一個小的功能——在界面上任意指定位置畫一條帶箭頭的線。這個時候發現單純用pb來做無法完成(至少目前我沒有找到簡便的方法,知道的兄弟可以留言告知下),所以想用c#編寫一個類庫專門用於畫線,同時也學習一下c#類庫製作的相關流程,特此記錄,以備後期查詢使用。

1.c#編寫dll類庫

新建項目:

 

建立好項目之後,先添加引用,添加引用的方式自行百度。

 

設置項目相關屬性

重新生成,重新生成時必須要有系統管理員權限,否者提示錯誤,生成失敗。

生成好之後,會有相關文件的產生

將dll和tlb文件copy,放到pb程序根目錄。

爲了能直接用批處理文件自動註冊,建議將regasm.exe文件copy到程序根目錄,這個文件的版本是根據c#編寫代碼是所設置的.net版本而來。

在pb程序根目錄中新建文本文件,名稱爲drawpen.bat,用於pb代碼中調用。編寫這個文件。如果需要註銷可以在/codebase前面加入/u 

以上基本完成了所有調用前的準備工作,下面就是pb端調用的過程。

獲取當前程序路徑,判斷是否有批處理文件,然後run。

新建窗口,在窗口中加入按鈕,按鈕中的代碼如下圖(因爲c#的dll文件不是標準dll,所以只能用connecttonewobject連接,無法以外部函數的方式調用。)

這個裏面有兩點需要注意,1.parent指代父窗體,如果需要在其他的容器中劃線就必須要傳入其他容器的handle,比如datawindow等。2.c#端的座標單位是像素,而在pb中是pbu所以這裏要轉換。

運行程序,點擊按鈕,效果如圖。如果提示外部函數報錯,絕大多數情況是當前的用戶沒有權限,這個上面也提到了,所以在開發時建議直接使用administrator這個用戶,這個用戶默認是關閉的,打開方式可以上網搜索。

修改:

剛纔我發現這個線的鋸齒效果非常差,爲了達到儘量減少鋸齒,查詢相關資料後發現,在c#中的畫圖對象可以設置繪圖質量,所以加入下面的代碼。

加入之後重新生成,重新調用,結果如圖。效果明顯要高於於前面。

 

到此結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章