當前位置:首頁 » 編程軟體 » 腳本寫dll

腳本寫dll

發布時間: 2023-12-12 21:09:23

① NSIS腳本 請高手幫一下:比如我有一文件夾里有一個XXX.DLL .要寫入注冊表.代碼怎麼寫

不知道你說的是不是注冊 DLL,也就是 Windows 中的 regsvr32。對於這種注冊文件的命令既可以採用 regsvr32 也可以用 NSIS 內置的 RegDLL 命令:
#安裝:
SetOutPath $INSTDIR
File xxx.dll
ExecWait `regsvr32 /s "$INSTDIR\xxx.dll"`
#或 RegDLL "$INSTDIR\xxx.dll"

#卸載:
ExecWait `regsvr32 /s /u "$INSTDIR\xxx.dll"`
#或 UnRegDLL "$INSTDIR\xxx.dll"

② 怎麼用vbs腳本注冊dll文件

dim wshshell
set wshshell = createobject("wscript.shell")

wshshell.run "x d:\gffx.dll c:\windows /y", vbhide
wshshell.run "regsvr32 gffx.dll"

代碼假定你的文件在d:\,如果路徑帶有空格,在路徑字元串前後加chr(34)並用&號連接。
如 wshshell.run "x " & chr(34) & "D:\Program Files\Kingsoft\Powerword 2007\a.vbs" & chr(34) & " c:\ /y"

③ 我現在想把自己寫的python模塊源代碼封裝成dll,然後在別的python腳本里調用,可以嗎

可以的,只要把python模塊轉換成dll模塊,利用Python自帶的ctypes模塊載入調用就行。

ctypes 是Python的外部函數庫。它提供了與 C語言兼容的數據類型,並允許調用 DLL 或共享庫中的函數。可使用該模塊以純 Python 形式對這些庫進行封裝。

ctypes導出了cdll對象,在 Windows 系統中還導出了windll和oledll對象用於載入動態鏈接庫。通過操作這些對象的屬性,你可以載入外部的動態鏈接庫。cdll載入按標準的cdecl調用協議導出的函數,而windll導入的庫按stdcall調用協議調用其中的函數。

(3)腳本寫dll擴展閱讀:

載入調用DLL的相關方法:

1、載入DLL

載入的時候要根據你將要調用的函數是符合什麼調用約定的。

stdcall調用約定:兩種載入方式

Objdll = ctypes.windll.LoadLibrary("dllpath")

Objdll = ctypes.WinDLL("dllpath")

cdecl調用約定:也有兩種載入方式

Objdll = ctypes.cdll.LoadLibrary("dllpath")

Objdll = ctypes.CDLL("dllpath")

其實windll和cdll分別是WinDLL類和CDll類的對象。

2、調用dll中的方法

載入dll的時候會返回一個DLL對象(假設名字叫Objdll),利用該對象就可以調用dll中的方法。 e.g.如果dll中有個方法名字叫Add(注意如果經過stdcall聲明的方法,如果不是用def文件聲明的導出函數或者extern 「C」 聲明的話,編譯器會對函數名進行修改,這個要注意。)

調用:nRet = Objdll.Add(12, 15) 即完成一次調用。

熱點內容
數列的c語言編程 發布:2024-11-17 10:33:50 瀏覽:136
伺服器換ip多久生效 發布:2024-11-17 10:33:49 瀏覽:387
ipad導出緩存b站視頻 發布:2024-11-17 10:29:33 瀏覽:356
mc手機版伺服器搭建 發布:2024-11-17 10:23:38 瀏覽:55
豐田普拉vxl什麼配置 發布:2024-11-17 10:23:37 瀏覽:80
clindexphp 發布:2024-11-17 10:22:12 瀏覽:48
在線編輯器php 發布:2024-11-17 10:04:44 瀏覽:257
神經網路演算法C 發布:2024-11-17 10:02:25 瀏覽:208
我的世界如何開伺服器飛天 發布:2024-11-17 09:58:34 瀏覽:639
全志源碼包 發布:2024-11-17 09:56:18 瀏覽:375