原创 用線程鎖,解決python多線程的資源衝突
要解決的問題: 程序中可能存在多個線程要同時訪問一個資源,這在某些資源中是不允許的,需要保證同一時間段只有一個線程訪問資源。 解決的方案是: 用線程鎖(threading.Lock() ),在線程訪問共享資源時,把需要解決衝突資源加鎖
原创 多個路由器組成同一網段的局域網
要解決的問題: 目前家庭常用的家庭配置的路由器的WAN口動態IP獲取,然後LAN口也是自動設置的,並且是通過DHCP的功能自動分配給接入設備的。,而我們的電腦連接路由器的IP設置也是自動獲取的。 這樣子的話
原创 pyQt 樣式表在ui文件的設置
應用背景: 以python爲程序運行基礎,直接調用QT的ui文件形成界面。 要實現的功能: 同樣的功能在python裏面用程序是可以實現的,但在設計時不能直接觀察。如何用QT設計界面的樣式表,就可以很方便實現這個功能了。 詳細操作
原创 ROCKET3加密狗 外殼加密簡單使用
要解決的問題: 對軟件的EXE文件進行加密狗保存 解決方案: 使用ROCKET3加密狗的外殼加密,某寶上20幾塊錢,物美價廉。 具體操作: 插入加密狗,使用開發工具,Envelope.exe對exe文件進行加密,生成加密EXE文件
原创 python sqlite3多線程訪問的解決方案
要解決的問題: sqlite3只支持的單線程訪問,多個地方同時訪問數據庫造成datalock的報錯。數據庫在界面線程 解決方案: 1、對sqlite3採用訪問,用完即關閉,解決創建線程和打開線程不一致。 2、對sqlite3的訪問函數
原创 pythonnet調用C#的枚舉類型
C#的枚舉變量 public enum PlcMemory { CIO = 1, WR = 2, DR = 3,
原创 c#typeof 在pythonnet裏面如何轉
C#裏的代碼: (MyCamera.MV_CC_DEVICE_INFO)Marshal.PtrToStructure(m_pDeviceList.pDeviceInfo[i], typeof(MyCamera.MV_CC_DEVICE
原创 三菱機器人MelfaRxM.OCX控件的python用法
1. 安裝控件 \MelfaRXM\MelfaRXM_Dev\Redist\Installer 2. 在WINDOWS/System32裏找到MelfaRxM.ocx 3.把OCX控件轉成C#的DLL a.打vs的開發人員命令行
原创 使用pythonnet找不DLL庫解決方案
第一種情況,用調試平臺(spyder)運行程序時,clr.AddReference('dll')時找不到 原因1:python版本與dll版對不上(32位,與64位的問題) 原因2: dll的搜索路徑不對,使用:sys.path.appe
原创 pthon 十六進制轉十進
eval("0xf") Out[5]: 15
原创 python OPENCV不能使用解決辦法
1.下載正確的python版本的OPENCV 2. 如果import cv2沒問題,報的是numpy庫的錯,更新numpy庫(在控制檯:pip install --upgrade numpy) 以上是使用平臺(anaconda,pyt
原创 python的類繼承
定義一個父類,然後定義一個子類,子類繼承了父類的所有屬性 如下: class Person(object): name = "new" age = 0 # name2 = "" class Student(
原创 pythonnet創建系統數組
方法: import clr #導入C#pythonnet的庫 import System c=System.Array.CreateInstance(數據類型,長度) 例如: System.Array.CreateInstance(st
原创 C#控制檯簡單測試第三方DLL程序
作用:常用於測試第三方DLL,可以輸出信息到控制檯監控,代碼如下: 第三方IMVDLL庫代碼: namespace IMVdll { public class CART { } } 測代碼: 在引用添加 DLL
原创 pythnet 非託管代碼調用細節處理
背景:有一DLL,C#的例程裏沒有用引用和using,而是直接用 [DllImport("FY4400.dll")] public static extern IntPtr FY4400_OpenDevic