与CSDN博客同步!!!https://blog.csdn.net/u014525494/article/details/86490627
最近在做python封装C#库的工作,之前接触的不多,因此遇到了很多的问题,下面将其一一列出,以便后续查看。
(1)为什么要用Pythonnet而不是IronPython?
这个很多大神都提到过前者,python程序为主体,部分调用C#接口;后者.NET为主体,部分功能用到Python。
(2)如何安装Pythonnet?
官网上说的很详细:https://github.com/pythonnet/pythonnet/wiki/Installation
(3)如何使用Pythonnet?
http://pythonnet.github.io/
(4)注意事项1:如何引用dll库?
import clr
clr.AddReference("MyDLL")
注意这个MyDLL.dll的路径是当前目录下,如果在别的地方引用可以添加引用路径,如下
import sys
sys.path.append("H:\PythonnetDemo\lib")
(5)注意事项2:为什么pycharm中会显示红色波浪线?
System是.Net Framework自带的库,虽然有红色波浪线,但是已经引入成功了。:
(6)注意事项3:自己引入的库是不会有自动提示的!!!!
这里注意很多朋友习惯使用自动提示,但是引入的DLL中的函数是不会在pycharm中自动提示的!!
(7)注意事项4:C#中的event handler如何在Python中调用呢??
def handler(sender):
print('handler called!')
object.Event += handler
最重要的地方:一般来说python test.py以后,python按照顺序执行文件便退出了,如果您这个时候添加了onRecvMsg这种回调,它是不能接收到的!!解决方案是让Python程序一直在运行,如下:
input('点击任意键退出')
这样Python程序将会一直处于运行中,event便能执行了。
心得:有些问题在网上可能没有答案,还需要自己慢慢去摸索!
网友评论