一个项目遇到了一个可能需要使用Python调用C#的DLL文件的需求,就查找了一下资料。自己尝试了一下。

我的Experts.dll文件中,有个Security类,类中有个AESEncrypt方法,可以对字符串进行加密。现在就来调用这个方法进行测试。

首先在Pycharm中,一开始安装clr,结果不行,接着根据第二篇文章中所述,安装pythonnet库。

安装过程如下:在Pycharm的File菜单中,找到settings,project interpreter,打开如图1所示的窗口。选择右上方的“+”,打开如图2所示界面。

python 调用 ruby PYTHON 调用DLL_python调用dll 函数

图1 settings界面

python 调用 ruby PYTHON 调用DLL_python 调用dll_02

图2 安装pythonnet

安装图2所示步骤,进行安装即可。或者在cmd中使用pip命令进行安装。命令如下:

pip install pythonnet

import clrclr.AddReference('Experts') #添加dll文件引用from Experts import *  #导入改Dll文件中d额所示方法password = "123456";  #定义加密密钥message = Security.AESEncrypt("python", password); #调用加密方法print(message) #打印加密j结果

运行结果如图3所示。

python 调用 ruby PYTHON 调用DLL_python 调用dll_03

图3 运行结果

至此,调用成功。记录下留待查询使用。