当前位置:首页 » 编程软件 » 脚本写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) 即完成一次调用。

热点内容
matlab编译工具箱 发布:2024-11-17 08:22:44 浏览:31
eda编译和综合区别 发布:2024-11-17 08:12:30 浏览:994
ftp服务器前端怎么用 发布:2024-11-17 08:12:30 浏览:67
基金怎么配置才合适 发布:2024-11-17 07:59:53 浏览:787
linux下编译cpp 发布:2024-11-17 07:59:18 浏览:645
javaweb数据库 发布:2024-11-17 07:59:18 浏览:910
hadoop在win10上编译 发布:2024-11-17 07:47:35 浏览:292
c安全编程 发布:2024-11-17 07:44:05 浏览:817
算法上中位 发布:2024-11-17 07:39:05 浏览:979
空调压缩机哪种好 发布:2024-11-17 07:36:50 浏览:756