python调用C# Com 的dll

Windows动态链接库(DLL)开发与跨语言调用实战 动态链接库(DLL)是Windows系统中实现代码复用的核心技术,通过运行时加载机制显著提升资源利用率。其核心原理是将公共功能封装为二进制模块,支持多进程共享同一内存映像,既减少磁盘占用又便于热更新。在工程实践中,开发者需要掌握__declspec(dllexport)导出规范、extern "C"名称修饰处理等关键技术点,特别是跨语言调用时需确保调用约定一致性。典型应用场景包括插件系统开发、算法模块封装等,通过隐式/显式链接方式,DLL可被C++、C#、Python等多种语言调用。随着模块化开发需求增长, 阅读详情

dll源程序 可查看 文章<<c++调用c# dll>>

http://blog.youkuaiyun.com/xugangjava/article/details/7067413

首先 运行 工具 makepy.py

这样就可以查看 C# dll的 com导出的 py文件了


查看


# -*- coding: mbcs -*-
# Created by makepy.py version 0.5.00
# By python version 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]
# From type library 'XGSharpLib.tlb'
# On Sun Jan 15 10:36:30 2012
""""""
makepy_version = '0.5.00'
python_version = 0x20504f0

import win32com.client.CLSIDToClass, pythoncom, pywintypes
import win32com.client.util
from pywintypes import IID
from win32com.client import Dispatch

# The following 3 lines may need tweaking for the particular server
# Candidates are pythoncom.Missing, .Empty and .ArgNotFound
defaultNamedOptArg=pythoncom.Empty
defaultNamedNotOptArg=pythoncom.Empty
defaultUnnamedArg=pythoncom.Empty

CLSID = IID('{B38EF2FA-4639-40BC-B97C-7908CED04FF9}')
MajorVersion = 1
MinorVersion = 0
LibraryFlags = 8
LCID = 0x0

from win32com.client import DispatchBaseClass
class IComXGSharpLib(DispatchBaseClass):
	CLSID = IID('{D1965A94-0271-4C48-8AF6-2A56E256808B}')
	coclass_clsid = IID('{2302D874-18FE-4281-B329-9517F1BC8311}')

	def EncryptMd5(self, orignPwd=defaultNamedNotOptArg):
		# Result is a Unicode object
		return self._oleobj_.InvokeTypes(2, LCID, 1, (8, 0), ((8, 1),),orignPwd
			)

	def EncryptSHA1(self, orignPwd=defaultNamedNotOptArg):
		# Result is a Unicode object
		return self._oleobj_.InvokeTypes(1, LCID, 1, (8, 0), ((8, 1),),orignPwd
			)

	_prop_map_get_ = {
	}
	_prop_map_put_ = {
	}

class _Object(DispatchBaseClass):
	CLSID = IID('{65074F7F-63C0-304E-AF0A-D51741CB4A8D}')
	coclass_clsid = IID('{2302D874-18FE-4281-B329-9517F1BC8311}')

	def Equals(self, obj=defaultNamedNotOptArg):
		return self._oleobj_.InvokeTypes(1610743809, LCID, 1, (11, 0), ((12, 1),),obj
			)

	def GetHashCode(self):
		return self._oleobj_.InvokeTypes(1610743810, LCID, 1, (3, 0), (),)

	# Result is of type _Type
	def GetType(self):
		ret = self._oleobj_.InvokeTypes(1610743811, LCID, 1, (13, 0), (),)
		if ret is not None:
			# See if this IUnknown is really an IDispatch
			try:
				ret = ret.QueryInterface(pythoncom.IID_IDispatch)
			except pythoncom.error:
				return ret
			ret = Dispatch(ret, u'GetType', '{BCA8B44D-AAD6-3A86-8AB7-03349F4F2DA2}')
		return ret

	_prop_map_get_ = {
		"ToString": (0, 2, (8, 0), (), "ToString", None),
	}
	_prop_map_put_ = {
	}
	# Default property for this class is 'ToString'
	def __call__(self):
		return self._ApplyTypes_(*(0, 2, (8, 0), (), "ToString", None))
	def __unicode__(self, *args):
		try:
			return unicode(self.__call__(*args))
		except pythoncom.com_error:
			return repr(self)
	def __str__(self, *args):
		return str(self.__unicode__(*args))
	def __int__(self, *args):
		return int(self.__call__(*args))

from win32com.client import CoClassBaseClass
# This CoClass is known by the name 'XGSharpLib.Security'
class Security(CoClassBaseClass): # A CoClass
	CLSID = IID('{2302D874-18FE-4281-B329-9517F1BC8311}')
	coclass_sources = [
	]
	coclass_interfaces = [
		IComXGSharpLib,
		_Object,
	]
	default_interface = IComXGSharpLib

IComXGSharpLib_vtables_dispatch_ = 1
IComXGSharpLib_vtables_ = [
	(( u'EncryptSHA1' , u'orignPwd' , u'pRetVal' , ), 1, (1, (), [ (8, 1, None, None) , 
			(16392, 10, None, None) , ], 1 , 1 , 4 , 0 , 28 , (3, 0, None, None) , 0 , )),
	(( u'EncryptMd5' , u'orignPwd' , u'pRetVal' , ), 2, (2, (), [ (8, 1, None, None) , 
			(16392, 10, None, None) , ], 1 , 1 , 4 , 0 , 32 , (3, 0, None, None) , 0 , )),
]

_Object_vtables_dispatch_ = 1
_Object_vtables_ = [
	(( u'ToString' , u'pRetVal' , ), 0, (0, (), [ (16392, 10, None, None) , ], 1 , 2 , 4 , 0 , 28 , (3, 0, None, None) , 0 , )),
	(( u'Equals' , u'obj' , u'pRetVal' , ), 1610743809, (1610743809, (), [ (12, 1, None, None) , 
			(16395, 10, None, None) , ], 1 , 1 , 4 , 0 , 32 , (3, 0, None, None) , 0 , )),
	(( u'GetHashCode' , u'pRetVal' , ), 1610743810, (1610743810, (), [ (16387, 10, None, None) , ], 1 , 1 , 4 , 0 , 36 , (3, 0, None, None) , 0 , )),
	(( u'GetType' , u'pRetVal' , ), 1610743811, (1610743811, (), [ (16397, 10, None, "IID('{BCA8B44D-AAD6-3A86-8AB7-03349F4F2DA2}')") , ], 1 , 1 , 4 , 0 , 40 , (3, 0, None, None) , 0 , )),
]

RecordMap = {
}

CLSIDToClassMap = {
	'{D1965A94-0271-4C48-8AF6-2A56E256808B}' : IComXGSharpLib,
	'{2302D874-18FE-4281-B329-9517F1BC8311}' : Security,
	'{65074F7F-63C0-304E-AF0A-D51741CB4A8D}' : _Object,
}
CLSIDToPackageMap = {}
win32com.client.CLSIDToClass.RegisterCLSIDsFromDict( CLSIDToClassMap )
VTablesToPackageMap = {}
VTablesToClassMap = {
	'{D1965A94-0271-4C48-8AF6-2A56E256808B}' : 'IComXGSharpLib',
	'{65074F7F-63C0-304E-AF0A-D51741CB4A8D}' : '_Object',
}


NamesToIIDMap = {
	'_Object' : '{65074F7F-63C0-304E-AF0A-D51741CB4A8D}',
	'IComXGSharpLib' : '{D1965A94-0271-4C48-8AF6-2A56E256808B}',
}



调用 dll中的 MD5加密方法



Python调用C# Com dll组件实战教程 下面小编就为大家带来一篇Python调用C# Com dll组件实战教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 立即下载

相关推荐

手把手教你理解特斯拉Model 3的域控制器架构:RBCM如何成为“多面手”?

本文深入解析特斯拉Model 3的域控制器架构,重点介绍右车身域控制器(RBCM)如何整合车身电子系统功能。RBCM作为多任务处理中枢,管理空调系统、尾部电气设备和超声波雷达等关键功能,展现了特斯拉在汽车电子架构上的创新设计。文章详细探讨了RBCM的硬件架构、功能版图及信号网络,揭示其如何通过高性能MCU和智能开关技术实现功能集中与效率提升。

weixin_30919429的博客 378

Python调用c#DLL

2.Python调用c#DLL使用的是pythonnet的clr包,注意python也有独立的clr包,如果使用错了会导致加载DLL出错。如果python也有独立的clr包已经安装,就先卸载。然后检查pythonnet包的安装情况。3.注意import clr代码需要set_runtime之后导入,否则加密后的信息虽然不会报错,但加密后的内容是错误的。1.注意区分:c++封装的使用ctypes,c#封装的使用pythonnet。

weixin_41146102的博客 2338

机械臂控制的基础知识

在现代工业中,机械臂的自动化控制已经成为智能制造的重要一环。控制机械臂涉及多个学科,包括机械设计、运动学、控制理论和编程等。本文将从以下几个方面介绍机械臂控制的核心知识点:机械臂的构成、运动学分析、动力学建模、控制方法及编程实现。

qq_45728381的博客 5470

python 调用 C# dll 库读取电脑硬件信息

python程序读取电脑硬件信息,包括。,通过该dll提供的接口读取硬件信息。

YumOS的博客 2659

基于立创EDA的IP5389BZ+IP6829 100W有线15W无线带屏充电宝DIY全流程解析

本文详细解析了基于立创EDA平台,采用IP5389BZ和IP6829芯片DIY一款100W有线快充、15W无线充电并带显示屏的移动电源的全过程。内容涵盖核心功能规划、硬件选型、电路设计、PCB布局、焊接组装、分步调试以及软件逻辑,为电子爱好者提供了一份从原理到实践的完整指南,并重点强调了电池安全与IP6829供电电压等关键注意事项。

weixin_34374684的博客 305

张正友标定法_单目-线激光三维扫描系统中光刀平面的标定

单目-线激光三维扫描系统中光刀平面的标定线结构光有结构简单、精度高、测速快等特点,被广泛应用于三维重建领域。线结构光三维扫描系统由一个相机和一个线结构光投射器构成,线结构光投射器将线结构光投射到被测物体表面,相机采集带有线激光的被测物体图像,根据相机和线激光投射器间的相对位置关系,使用激光三角法计算出激光线上的点在相机坐标系下的坐标。激光三角法原理如下图所示,线激光投射的扇形区域可以看作是一个平面...

weixin_39616379的博客 1074

python调用C# DLL

使用C#编写用以与仪表通讯的DLL,将DLL放置在Python项目的工作目录的dll文件夹中,在Python项目中调用。

Cecile0828的博客 1800

从PCB走线到天线:用史密斯圆图搞定2.4GHz频段的阻抗匹配陷阱

本文深入探讨了2.4GHz频段PCB设计中阻抗匹配的挑战与解决方案,重点介绍了史密斯圆图在射频和天线阻抗匹配中的应用。通过实战案例和详细步骤,帮助工程师有效解决高频信号传输中的阻抗失配问题,提升物联网设备的通信性能。

uuu88的博客 721

python 通过clr库调用C#写的dll文件(详细)

前提摘要: 所谓dll文件也叫库文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。比如,再我们安装一些软件的时候,目录下面会有很多dll文件。当我们执行这个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。关于dll文件解释大家可自行百度。 今天要做的主要是使用python如何调用dll文件,并使用文件中的方法。 ...

xgh1951的博客 2万+

WIN10系统下VS2019编译CloudCompare2.12.4

CloudCompare2.12.4

点云侠的博客 3141

Centos 7 Linux 离线安装单机 Kafka:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统上离线安装单机版 Apache Kafka 的完整流程,包括环境准备(JDK 安装)、Kafka 安装包上传与解压、关键配置修改(如监听地址)、ZooKeeper 与 Kafka 服务的启动,以及 Topic 的创建、消息的生产和消费等基础操作。适用于无网络环境下的 Kafka 快速部署与学习,为后续开发或测试提供本地消息队列支持。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1319

python调用c#dll_python调用C# Com 的dll

dll源程序 可查看 文章首先 运行 工具 makepy.py 这样就可以查看 C# dll的 com导出的 py文件了 查看# -*- coding: mbcs -*-# Created by makepy.py version 0.5.00# By python version 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 b...

weixin_39945445的博客 207

AUTOSAR-WdgM篇

Wdg通常有两种:一种是芯片内部自带的片内看门狗,另一种是在芯片外部通过SPI这种接口连接的片外看门狗。MCAL只负责常用的有MCU内部看门狗,片内看门狗的特点是Wdg模块是直接访问相关硬件寄存器。内部看门狗依赖于系统时钟片外看门狗属于设备抽象层负责,通常需要使用MCAL提供的其他模块(比如SPI,DIO,PWM等)来访问/控制外扩看门狗芯片。这种不能直接访问硬件寄存器。Wdg Driver:有三种模式slow mode,fast mode ,off mode。

qq_329563867的博客 5828

python调用c#dll_python调用C# Com 的dll | 学步园

dll源程序 可查看 文章首先 运行 工具 makepy.py这样就可以查看 C# dll的 com导出的 py文件了查看# -*- coding: mbcs -*-# Created by makepy.py version 0.5.00# By python version 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit...

weixin_39562606的博客 826

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python调用com组件_Python调用C# Com dll组件的过程详解

下面小编就为大家带来一篇Python调用C# Com dll组件实战教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧之前公司有套C# AES加解密方案,但是方案加密用的是Rijndael类,而非AES的四种模式(ECB、CBC、CFB、OFB,这四种用的是RijndaelManaged类),Python下Crypto库AES也只有这四种模式,进而Python下无法...

weixin_39624733的博客 1758

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python调用C# Com dll组件实战

类似于这种C# 能实现的功能而在Python下实现不了的,搜集资料有两种解决方案,第一种方式,使用IronPython 直接调用C# dll文件,教程网上很多,不在赘述了,这种方式有个缺点,用的是ironPython而非Python,只是集成了一些.net framework库的Python版本,更新维护少;第二种方式是,C# dll源码编译成Com组件,Python再调用COM组件Dll的方法。 网上有很多Python调用COM dll教程,但大部分是C或C++编写的dll,很少有比较全面的

Allan的博客 7916

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pythonnet调用不了x86的dll_Python调用C# Com dll组件的方法详解

Python调用C# Com dll组件实战教程之前公司有套C# AES加解密方案,但是方案加密用的是Rijndael类,而非AES的四种模式(ECB、CBC、CFB、OFB,这四种用的是RijndaelManaged类),Python下Crypto库AES也只有这四种模式,进而Python下无法实现C# AES Rijndael类加密效果了。类似于这种C# 能实现的功能而在Python下实现不了...

weixin_39594439的博客 152

python调用c#dll_c# – 在Python中加载DLL文件和调用函数

我有加载DLL文件和在Python中调用函数的问题.我已经尝试了很多教程,但仍然无法弄清楚它是如何工作的.这是我的类导出为DLL文件.我使用简单的C#代码.namespace DemoClassLib{public class cLib{public int increment(int x){return x + 1;}}}构建C#代码后,我得到名为“DemoClassLib.dll”的DLL文件...

weixin_39615402的博客 160

Python 调用 C# dll 的完整代码案例

下面提供两种主要方法:使用pythonnet(推荐) 和使用 COM 组件。

学亮编程手记 1266

pythonnet调用不了x86的dll_python 调用 .net dll方法

Python编程语言的应用,可以很好的帮助编程人员提高开发效率,而且其应用范围广泛。在这里我们可以先通过对Python调用.net framework的了解来熟悉一下这一语言给我们带来的功能特点。1. 安装python2.5和对应的pywin322. 下载ironPython源代码 是C#的。我用的是IronPython1.1的版本,从codeplex网站下载IronPython_1_1.rar。...

weixin_30676351的博客 427

C#编写DLL,其它语言可以调用

本文介绍了两种实现C# DLL跨语言调用的方法:1)通过COM组件实现通用互操作,适用于Python、Java、C++等多种语言;2)使用P/Invoke导出非托管函数,专为C/C++调用设计。重点讲解了COM组件的创建步骤,包括配置COM可见性、添加GUID标识、注册DLL等关键技术点,并提供了Python和C++的调用示例。同时强调了数据类型兼容性、错误处理和位数匹配等注意事项,为开发者提供了完整的跨语言互操作解决方案。

GuoGuoABC 809

避开付费陷阱:Vensim PLE用户如何免费获取vendll32.dll实现vdf文件转换

本文为Vensim PLE用户提供了一种免费解决方案,通过合法安装官方Vensim Model Reader获取vendll32.dll文件,并利用其二次开发接口实现vdf文件到文本格式的转换。文章详细介绍了DLL的获取、注册方法,并提供了Python和C#的调用示例,帮助用户在尊重软件许可的前提下,绕过付费限制,高效处理仿真数据。

kafka6courier的博客 634

不同编程语言调用COM对象巨难,创建更难,微软必死

但 COM 的类型系统(VARIANT、BSTR、SAFEARRAY、IDispatch)是所有语言的噩梦,谁也解决不了!**只有 VB6 是 OCX 亲妈其他语言都是后妈,甚至后后妈AtlAx 只能让你 “显示控件”但不能让你 “轻松调用控件方法 / 属性 / 事件”

176

深度解析ComWeChatRobot开源项目:基于COM组件的个人微信自动化接口与SDK集成详细使用指南

ComWeChatRobot 是目前GitHub上维护较好、接口封装较为完善的微信自动化项目之一。它巧妙地将复杂的逆向工程封装在COM组件之后,让普通开发者也能轻松通过几行代码实现强大的微信自动化功能。无论是用于个人效率工具开发,还是企业私域流量的自动化运营,它都提供了极高的价值。但请务必牢记,技术应服务于正途,遵守平台规范,合理控制调用频率,才是长久之计。

wulechun的博客 486

python调用c#dll_有谁知道python怎么调用c#的dll

展开全部1、首选运行工具 makepy.py。2、这样就可以查看 C# dll的32313133353236313431303231363533e58685e5aeb931333337396231 com导出的 py文件了。Python编程makepy.py代码如下:# -*- coding: mbcs -*-# Created by makepy.py version 0.5.00# By py...

weixin_39731271的博客 305
上一篇: Python序列化与反序列化对象
下一篇: MFC 下载文件
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值