dll源程序 可查看 文章<<c++调用c# dll>>
http://blog.csdn.net/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加密方法